Logo by kameelian - Contribute your own Logo!
News: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. September 22, 2017, 01:18:23 AM


Login with username, password and session length


The All New FractalForums is now in Public Beta Testing! Visit FractalForums.org and check it out!


Pages: [1]   Go Down
  Print  
Share this topic on DiggShare this topic on FacebookShare this topic on GoogleShare this topic on RedditShare this topic on StumbleUponShare this topic on Twitter
Author Topic: new Mandelbulb renderer nearly ready for release  (Read 3918 times)
0 Members and 1 Guest are viewing this topic.
Buddhi
Fractal Iambus
***
Posts: 881



WWW
« on: January 24, 2010, 11:40:58 AM »

Hi

I decided to build some GUI for my 3D fractal renderer. In few weeks I will release some alpha version for tests. It will be open source program for Linux 32-bit and 64-bit running in GNOME environment (e.g. Ubuntu). More details about program I will describe when It work will be more advanced. Now I can present some screen-shot of my program.


* zrzut_ekranu.jpg (310.17 KB, 1133x875 - viewed 430 times.)
« Last Edit: January 24, 2010, 11:43:10 AM by Buddhi » Logged

miner49er
Safarist
******
Posts: 82


« Reply #1 on: January 24, 2010, 07:33:19 PM »

Excellent! Can't wait for this!

Heh, to begin with I wondered how you had snapshotted my desktop then I Realised we simply have the same background!

Logged
Nahee_Enterprises
World Renowned
Fractal Senior
******
Posts: 2250


use email to contact


nahee_enterprises Nahee.Enterprises NaheeEnterprise
WWW
« Reply #2 on: January 26, 2010, 02:59:57 PM »

It will be open source program for Linux 32-bit and 64-bit
running in GNOME environment (e.g. Ubuntu).

Always good to see an open source application, and one for x-based systems.    smiley
 
Logged

spooky
Guest
« Reply #3 on: January 31, 2010, 07:56:15 PM »

Hello Budhi,

I just posted my windows version in the section forum above... But I must say your screenshot shows incredibly nice renderings, which shading approach did you use?

Spooky
Logged
stigomaster
Guest
« Reply #4 on: February 01, 2010, 06:43:01 PM »

Do want smiley
Logged
Buddhi
Fractal Iambus
***
Posts: 881



WWW
« Reply #5 on: February 04, 2010, 07:07:25 PM »

I have just released first version of my Mandelbulb renderer for Linux. Program needs lot's of improvements but it works quite stable (I hope)

You can download program from SourceForge.net

http://sourceforge.net/projects/mandelbulber/

Program was compiled for x86 CPUs but source code is ready to compile for x64 CPUs. You need installed libgtk2.0-dev package for compiling it.

Licence: GNU GPL

first to improve:
- more awesome dude resistant
- animation mode
- clean-up the source code
- compile for MS Windows (maybe somebody can help me?)
 


* mandelbulber.jpg (159.61 KB, 1333x823 - viewed 349 times.)
Logged

iteron
Guest
« Reply #6 on: February 05, 2010, 12:45:54 AM »

Hello Krzysztof,

I downloaded the source and installed the program.

When I run the program 3 windows open up.

The Mandelbulber window for the settings, the render window, and an iteration histogram window.

If I click on any of the windows the program shuts down, the render and the iteration histogram window were both dark.

I got the following message when running it;



I'm on Slackware 13.0

When I get some time I'll start it up in gdb and try to track down the trouble code.

Regards,
Marco


Logged
iteron
Guest
« Reply #7 on: February 05, 2010, 04:37:22 AM »

Hello again,

I put the program in gdb.



It seems the problem is when it gets the mouse motion in the callback in callbacks.cpp.

I don't understand why at all.  Since gdk is used in GIMP and many other programs and I've never had any troubles with those.
 huh?
Logged
Buddhi
Fractal Iambus
***
Posts: 881



WWW
« Reply #8 on: February 05, 2010, 09:43:58 AM »

@iteron

Thanks for tests. I'm really surprised what happened  sad. Program was tested on 3 systems: Ubuntu 9.10 x64 (Intel Core2 Duo Quad), Ubuntu 9.10 x86 on virtual machine (VirtualBox), and Kubuntu 8.10 x86 (Intel Core 2 Duo) and it runs without any problems.

What CPU do you have? Binary file was compiled for x86 architecture with SSE support. I will be very glad if you make one test for me. Please recompile this program again for your CPU.
First you should change something in mandelbulber/src/Release/subdir.mk
From instructions:
Code:
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"$(@:%.o=%.d)" -MT"Render3D.d" -o"$@" "$<"
please remove -mfpmath=387,sse -ffast-math

next:
cd mandelbulber/src/Release
make clean
make all
and go to mandelbulb directory and:
./install (with root privileges)

For compiling program you have to have installed libgtk2.0-dev package

I hope that it helps. If not, please try to use attached binary without motion_notify_event() function

Thanks in advance

* mandelbulber.zip (34.44 KB - downloaded 115 times.)
Logged

iteron
Guest
« Reply #9 on: February 05, 2010, 05:37:34 PM »

Thanks for the help.

Now I tried to make the program and this is what happened.

Code:
bash-3.1# make clean
rm -rf  ./Render3D.o ./callbacks.o ./common_math.o ./files.o ./fractal.o ./image.o ./interface.o ./settings.o  ./Render3D.d ./callbacks.d ./common_math.d ./files.d ./fractal.d ./image.d ./interface.d ./settings.d  mandelbulber
 
bash-3.1# make all
Building file: ../Render3D.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"Render3D.d" -MT"Render3D.d" -o"Render3D.o" "../Render3D.cpp"
../Render3D.cpp:1130: warning: this decimal constant is unsigned only in ISO C90
../files.h:24: warning: 'void my_error_exit(jpeg_common_struct*)' declared 'static' but never defined
Finished building: ../Render3D.cpp
 
Building file: ../callbacks.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"callbacks.d" -MT"callbacks.d" -o"callbacks.o" "../callbacks.cpp"
Finished building: ../callbacks.cpp
 
Building file: ../common_math.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"common_math.d" -MT"common_math.d" -o"common_math.o" "../common_math.cpp"
Finished building: ../common_math.cpp
 
Building file: ../files.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"files.d" -MT"files.d" -o"files.o" "../files.cpp"
Finished building: ../files.cpp
 
Building file: ../fractal.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"fractal.d" -MT"fractal.d" -o"fractal.o" "../fractal.cpp"
../fractal.cpp: In function 'int ComputeIterations(sFractal&, sFractal_ret&)':
../fractal.cpp:25: warning: 'distance' may be used uninitialized in this function
Finished building: ../fractal.cpp
 
Building file: ../image.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"image.d" -MT"image.d" -o"image.o" "../image.cpp"
Finished building: ../image.cpp
 
Building file: ../interface.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"interface.d" -MT"interface.d" -o"interface.o" "../interface.cpp"
Finished building: ../interface.cpp
 
Building file: ../settings.cpp
Invoking: GCC C++ Compiler
g++ -O2 -march=native -mfpmath=387,sse -ffast-math -Wall -c -fmessage-length=0 `pkg-config --cflags gtk+-2.0 gthread-2.0;` -MMD -MP -MF"settings.d" -MT"settings.d" -o"settings.o" "../settings.cpp"
Finished building: ../settings.cpp
 
Building target: mandelbulber
Invoking: GCC C++ Linker
g++ `pkg-config --libs gtk+-2.0 gthread-2.0` -o"mandelbulber"  ./Render3D.o ./callbacks.o ./common_math.o ./files.o ./fractal.o ./image.o ./interface.o ./settings.o   -ljpeg
./files.o: In function `SaveJPEG(char*, int, int, int, unsigned char*)':
files.cpp:(.text+0x22): undefined reference to `jpeg_std_error(jpeg_error_mgr*)'
files.cpp:(.text+0x40): undefined reference to `jpeg_CreateCompress(jpeg_compress_struct*, int, unsigned int)'
files.cpp:(.text+0x70): undefined reference to `jpeg_stdio_dest(jpeg_compress_struct*, _IO_FILE*)'
files.cpp:(.text+0x9b): undefined reference to `jpeg_set_defaults(jpeg_compress_struct*)'
files.cpp:(.text+0xb2): undefined reference to `jpeg_set_quality(jpeg_compress_struct*, int, int)'
files.cpp:(.text+0xc2): undefined reference to `jpeg_start_compress(jpeg_compress_struct*, int)'
files.cpp:(.text+0xf9): undefined reference to `jpeg_write_scanlines(jpeg_compress_struct*, unsigned char**, unsigned int)'
files.cpp:(.text+0x10f): undefined reference to `jpeg_finish_compress(jpeg_compress_struct*)'
files.cpp:(.text+0x125): undefined reference to `jpeg_destroy_compress(jpeg_compress_struct*)'
./files.o: In function `CheckJPEGsize(char*, int&, int&)':
files.cpp:(.text+0x195): undefined reference to `jpeg_std_error(jpeg_error_mgr*)'
files.cpp:(.text+0x1d9): undefined reference to `jpeg_CreateDecompress(jpeg_decompress_struct*, int, unsigned int)'
files.cpp:(.text+0x1eb): undefined reference to `jpeg_stdio_src(jpeg_decompress_struct*, _IO_FILE*)'
files.cpp:(.text+0x1fb): undefined reference to `jpeg_read_header(jpeg_decompress_struct*, int)'
files.cpp:(.text+0x219): undefined reference to `jpeg_destroy_decompress(jpeg_decompress_struct*)'
files.cpp:(.text+0x24a): undefined reference to `jpeg_destroy_decompress(jpeg_decompress_struct*)'
./files.o: In function `LoadJPEG(char*, unsigned char*)':
files.cpp:(.text+0x2f7): undefined reference to `jpeg_std_error(jpeg_error_mgr*)'
files.cpp:(.text+0x33b): undefined reference to `jpeg_CreateDecompress(jpeg_decompress_struct*, int, unsigned int)'
files.cpp:(.text+0x34d): undefined reference to `jpeg_stdio_src(jpeg_decompress_struct*, _IO_FILE*)'
files.cpp:(.text+0x35d): undefined reference to `jpeg_read_header(jpeg_decompress_struct*, int)'
files.cpp:(.text+0x365): undefined reference to `jpeg_start_decompress(jpeg_decompress_struct*)'
files.cpp:(.text+0x3b8): undefined reference to `jpeg_read_scanlines(jpeg_decompress_struct*, unsigned char**, unsigned int)'
files.cpp:(.text+0x3f3): undefined reference to `jpeg_finish_decompress(jpeg_decompress_struct*)'
files.cpp:(.text+0x3fb): undefined reference to `jpeg_destroy_decompress(jpeg_decompress_struct*)'
files.cpp:(.text+0x42a): undefined reference to `jpeg_destroy_decompress(jpeg_decompress_struct*)'
collect2: ld returned 1 exit status
make: *** [mandelbulber] Error 1
bash-3.1#

It didn't compile because of that jpeg library.
I looked in /usr/lib and /usr/include/ the header and the library files for jpeglib are there.
For some reason it won't link to it.
any suggestions?

Thank you.

Logged
Buddhi
Fractal Iambus
***
Posts: 881



WWW
« Reply #10 on: February 05, 2010, 06:20:18 PM »

I will install this Slackware 13.0 Linux on virtual machine and I will test what is wrong with my program on this Linux distribution.
Logged

Buddhi
Fractal Iambus
***
Posts: 881



WWW
« Reply #11 on: February 06, 2010, 02:01:20 PM »

Hi

I installed Slackware Linux on virtual machine and I tested my program. It works also without any problems. I think you have some problems with GTK+2.0 libraries or some not untypical CPU. I attached screen-shot with running program on Slackware. Unfortunately I didn't compile this program under Slackware because I had some problems with installing additional packages. If you tell me how to install libgtk2.0-dev using slatp-get, I will try to recompile my program.

Please wait for next releases and check again my program. I rebuilt GUI and some routines for communication between program and GUI.


* slackware.jpg (168.03 KB, 1049x861 - viewed 335 times.)
Logged

knighty
Fractal Iambus
***
Posts: 818


« Reply #12 on: February 13, 2010, 06:01:13 PM »

Very nice application and impressive renderings  smiley. I'm waiting for the windows version  grin.
Logged
teamfresh
Fractal Lover
**
Posts: 246


nothing is everything


fractalco
WWW
« Reply #13 on: March 13, 2010, 12:54:28 AM »

I have been playing around on the windows version for the last two days and I love it! its awesome. I need some help though (I have just posted this at the source forge support area also)

 I am curious as to how to render a smooth animation with it though? when I click "record path", I then use the mouse to steer my way about the fractal and as I do this the software saves a series of images which I can then turn into an avi - this is cool! however I would like to render a longer animation but I cant be at my computer all the time to steer - and so I began to wonder about the "render animation" button? i think that the information must be in a .txt file in the path folder? but I have no idea if this is true - or if it is how the txt file is written out. I would be greatful if you could throw me a few tips or even an example txt file so I can see how to do this?
one more thing - I thought that if I clicked on "render animation" button it would render the flight path that i took when I clicked "record path" but instead it just renders the start image over and over - I made sure to set the starting position by clicking the "init 3d navigator" before clicking "record path" and followed the tips but no joy =(
Logged

Buddhi
Fractal Iambus
***
Posts: 881



WWW
« Reply #14 on: March 13, 2010, 09:32:05 AM »

Thank you for using my program.
I will try to explain how to prepare and render animation.
1. Prepare starting view-point. You can click Init 3D Navigator and the camera will move to the default starting position. You can also put your own camera coordinates and angle, set "perspective" to around 1.5 and "Close up (zoom)" to very low value (e.g 1e-6). You can also decide how fast flight will be. It is adjustable by the "Flight speed (DE multiplier). Camera speed is proportional to estimated distance to the fractal surface.
2. Set up very low image resolution (e.g. 160x120) and "Scale in window" to higher value (e.g. 4). Because my programs offers high quality of images instead of calculation speed it will be faster to record flight track in low resolution.
3. Click "Record path" and navigate camera by mouse movement inside render window. Your flight track is recorded in "paths/path.txt: file (in default) and low-res stills are recorded in "images/imageXXXX.jpg" files
4. When the flight path is ready, set-up requested resolution of animation (e.g. 1280x720) and other quality parameters
5. Set up image stills destination path by "Select file paths / destination image sequence". This folder should be empty.
6. Save actual setting by "Save settings". It will be helpful when you will want to continue rendering animation after stop.
7. Click "Render animation". Animation is now rendering according to camera coordinates saved in path.txt file.
If you want to continue rendering animation which you started before (e.g. after some power failure), please load proper settings file and just click on "Render animation". Program will scan which frames are already rendered and render all missed frames.
Logged

Pages: [1]   Go Down
  Print  
 
Jump to:  


Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2015, Simple Machines

Valid XHTML 1.0! Valid CSS! Dilber MC Theme by HarzeM
Page created in 0.321 seconds with 28 queries. (Pretty URLs adds 0.017s, 2q)