Logo by Cyclops - Contribute your own Logo!
News: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. September 22, 2017, 01:06:03 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] 2   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: Mandelbulber 0.94  (Read 3945 times)
0 Members and 1 Guest are viewing this topic.
Buddhi
Fractal Iambus
***
Posts: 881



WWW
« on: October 16, 2010, 07:38:21 PM »

Mandelbulber 0.94 - for Linux x86, Linux x64 and also for Win32

Open source program (GNU GPL) for rendering photo-realistic 3D fractals

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

New features in version 0.94:

- Added lowMem mode. When active, the program uses about 3 times less memory. Possible to render much larger images on 32-bit systems (8000x8000 on WinXp 32-bit, 15000x15000 on Linux64-bit with 4GB RAM). To activate it please start the program with -lowmem parameter.
- Added Timeline window with keyframes thumbnails
- Buttons "Record keyframe", "Next keyframe", "Previous keyframe" and edit field "Key no." moved into Timeline window
- Added "Delete keyframe" function
- Added "Insert keyframe" function
- Keyframe can be selected and loaded (double click) from Timeline window
- "Next keyframe" and "Previous keyframe" buttons also starts rendering.
- Progressive rendering now is disabled in noGUI mode
- Fixed bug: program crashed during stereo rendering in noGUI mode
- Fixed bug: SSAO sometimes generates artifacts during progressive rendering
- Fixed bug: images was dark in noGUI mode (colour palette was black)
- Fixed bug: visible auxiliary lights in very high image resolution was rendered with visible square artifacts
- Fixed bug: scale of visible auxiliary lights was not correct (size of lights wasn't proportional to square of distance)
- Fixed bug: Program crashed when start_frame in keyframe mode was greater than zero
- Fixed memory leaks and uninitialized variables
- Source code: many changes in program structure. Now there is possible to simultaneous render two different fractals.


Before first run please use install script


SVN repository: http://mandelbulber.googlecode.com/svn/trunk/
This repository is available from Google Code: http://code.google.com/p/mandelbulber/

My gallery with images created using Mandelbulber: http://krzysztofmarczak.deviantart.com/gallery/
Logged

fronclynne
Guest
« Reply #1 on: October 17, 2010, 04:05:35 PM »

It compiles quite well, actually, on FreeBSD 8.1 amd64 here:
  • GCC 4.2.1 (base compiler)
  • gtk 2.20
  • jpeg-8
  • libsndfile 1.0.21

though I haven't really flogged yet.

Thanks.

(you probably  have to use gmake, though)
« Last Edit: October 18, 2010, 06:12:49 AM by fronclynne, Reason: Yeah, gmake. I love you too. » Logged
jwm-art
Iterator
*
Posts: 171



WWW
« Reply #2 on: October 17, 2010, 07:17:51 PM »

There's a bug with the 3d navigator when the step size value has been increased by the user.

The best way to witness the problem is to init the 3d navigator and then change the (default) step size from 0.5 to 1.5. Now alternate between pressing the move-camera-left button and the move-camera-right direction button for several iterations and watch the viewport x, y, and z values accumulate.

Gentoo ~amd64, gcc 4.4.4, gtk2.20.1

btw, this bug was present in 0.93.

cheers,
James.
« Last Edit: October 17, 2010, 07:29:58 PM by jwm-art » Logged
Buddhi
Fractal Iambus
***
Posts: 881



WWW
« Reply #3 on: October 17, 2010, 07:36:32 PM »

Hi

In default camera moving mode, movement distance equals to estimated_distance_to_the_fractal * step_for_camera_moving. After pressing "Init 3D navigator" button distance is 25. When you set step size to 1,5 and move camera right then camera will move by 25*1,5 distance. After movement distance to fractal is 40 and when you move camera again in left direction it will move by distance 40*1,5. camera will not return to the same position.

It works in that way, because when you move camera closer to fractal, then movement step will be shorter. It automatically adapt precision of movement to distance from fractal.

If you want to control movement distance by yourself, please switch on "Absolute distance mode". Now movement distance is fixed and defined in "Absolute movement distance".

I hope this explanation helps you.
Logged

jwm-art
Iterator
*
Posts: 171



WWW
« Reply #4 on: October 17, 2010, 08:14:25 PM »

Oh  embarrass


Logged
Russ McClay
Explorer
****
Posts: 49



« Reply #5 on: October 18, 2010, 07:01:15 AM »

I know you're working hard on the latest version, but just wanted to report that the new Timeline UI in 0.94 is great. Recording, deleting and animating keyframes works fine under Windows 32-bit (XP and 7).

But, clicking on the Record key-frame button next to Render from key-frames on the Animation page, will still crash the program. Which is not a problem since I can use the Timeline.

Thank you so much for Mandlebulber and your efforts to make this available!

Russ
Logged
kon16ov
Conqueror
*******
Posts: 105



warep kon16ov
« Reply #6 on: October 18, 2010, 07:10:42 PM »

Howdy!

I've been kicking the tires, a bit, and wish that the internet hadn't gone AWOL at the CLEC, otherwise I could have gotten it up a little sooner...  anyway, I've written down some observations.  All were in lowmem mode.  I *love* lowmem mode.  I really like the progress in this app -- you're doing an excellent job.  In this light, I'd like to give you some detailed items I ran into. 

Animation tab:
clicked “record flight” then clicked “record keyframe”
error: “(mandelbulber:7874): Gtk-CRITICAL **: gtk_entry_get_text: assertion `GTK_IS_ENTRY (entry)' failed


Giant explosion #1:
Timeline:
clicked “record keyframe” while initial rendering
produced segfault [2]

2nd attempt to replicate the bug, loaded timeline and clicked “record keyframe” recorded keyframe successfully.
Keyframe image obscured by horizontal scroll bar and button sizes are very large, unlike the first time I tried.  I loaded it, then clicked on “record keyframe” from animation tab; added successfully and an image was displayed for keyframe 1.  The image was what keyframe 0 should have been, but keyframe 0 was blank.
Likewise, adding keyframe 3 from animation tab added successfully, but, again, displayed what should have been keyframe 2.
Recorded keyframe from timeline, then, which added successfully, but displayed keyframe 3 rather than 4.

I then alt-tabbed over to write down my observations and it crashed:
Rendering Screen Space Ambient Occlusion. Done 100%       
Code:
*** glibc detected *** mandelbulber: corrupted double-linked list: 0x0a133488 ***
======= Backtrace: =========
/lib/tls/i686/cmov/libc.so.6[0xb748217f]
/lib/tls/i686/cmov/libc.so.6[0xb7483c8d]
/lib/tls/i686/cmov/libc.so.6(__libc_malloc+0x95)[0xb7485ac5]
/usr/local/lib/libglib-2.0.so.0(g_realloc+0x3a)[0xb779c97a]
/usr/local/lib/libpango-1.0.so.0(pango_glyph_string_set_size+0x4e)[0xb794c33e]
/usr/local/lib/pango/1.6.0/modules/pango-basic-fc.so[0xb6519e0e]
/usr/local/lib/libpango-1.0.so.0[0xb7952f9a]
/usr/local/lib/libpango-1.0.so.0(pango_shape+0x5a)[0xb79662fa]
/usr/local/lib/libpango-1.0.so.0[0xb79583a2]
/usr/local/lib/libpango-1.0.so.0[0xb7958df3]
/usr/local/lib/libpango-1.0.so.0[0xb795aba1]
/usr/local/lib/libpango-1.0.so.0[0xb795bd1b]
/usr/local/lib/libpango-1.0.so.0(pango_layout_get_pixel_extents+0x7e)[0xb795d9ae]
/usr/lib/libgtk-x11-2.0.so.0[0xb7cf93f5]
/usr/local/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__BOXED+0x8c)[0xb786f05c]
/usr/local/lib/libgobject-2.0.so.0[0xb78607e9]
/usr/local/lib/libgobject-2.0.so.0(g_closure_invoke+0xd8)[0xb7861fe8]
/usr/local/lib/libgobject-2.0.so.0[0xb7877f42]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x73c)[0xb7879dbc]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit_by_name+0x165)[0xb787a0b5]
/usr/lib/libgtk-x11-2.0.so.0[0xb7d2f036]
/usr/lib/libgtk-x11-2.0.so.0[0xb7d2f307]
/usr/lib/libgtk-x11-2.0.so.0(gtk_widget_size_request+0x7f)[0xb7de376f]
/usr/lib/libgtk-x11-2.0.so.0[0xb7bff1ec]
/usr/local/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__BOXED+0x8c)[0xb786f05c]
/usr/local/lib/libgobject-2.0.so.0[0xb78607e9]
/usr/local/lib/libgobject-2.0.so.0(g_closure_invoke+0xd8)[0xb7861fe8]
/usr/local/lib/libgobject-2.0.so.0[0xb7877f42]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x73c)[0xb7879dbc]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit_by_name+0x165)[0xb787a0b5]
/usr/lib/libgtk-x11-2.0.so.0[0xb7d2f036]
/usr/lib/libgtk-x11-2.0.so.0[0xb7d2f307]
/usr/lib/libgtk-x11-2.0.so.0(gtk_widget_size_request+0x7f)[0xb7de376f]
/usr/lib/libgtk-x11-2.0.so.0[0xb7decd9a]
/usr/local/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__BOXED+0x8c)[0xb786f05c]
/usr/local/lib/libgobject-2.0.so.0[0xb78607e9]
/usr/local/lib/libgobject-2.0.so.0(g_closure_invoke+0x1ab)[0xb78620bb]
/usr/local/lib/libgobject-2.0.so.0[0xb7877f42]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x73c)[0xb7879dbc]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit_by_name+0x165)[0xb787a0b5]
/usr/lib/libgtk-x11-2.0.so.0[0xb7d2f036]
/usr/lib/libgtk-x11-2.0.so.0[0xb7d2f307]
/usr/lib/libgtk-x11-2.0.so.0(gtk_widget_size_request+0x7f)[0xb7de376f]
/usr/lib/libgtk-x11-2.0.so.0[0xb7ded1a3]
/usr/lib/libgtk-x11-2.0.so.0[0xb7df5d03]
/usr/local/lib/libgobject-2.0.so.0(g_cclosure_marshal_VOID__VOID+0x84)[0xb786f9f4]
/usr/local/lib/libgobject-2.0.so.0[0xb78607e9]
/usr/local/lib/libgobject-2.0.so.0(g_closure_invoke+0x1ab)[0xb78620bb]
/usr/local/lib/libgobject-2.0.so.0[0xb7878361]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit_valist+0x73c)[0xb7879dbc]
/usr/local/lib/libgobject-2.0.so.0(g_signal_emit+0x26)[0xb787a266]
/usr/lib/libgtk-x11-2.0.so.0(gtk_container_check_resize+0x8a)[0xb7c3246a]
/usr/lib/libgtk-x11-2.0.so.0[0xb7c324c0]
/usr/lib/libgdk-x11-2.0.so.0[0xb7b138fb]
/usr/local/lib/libglib-2.0.so.0[0xb7791f61]
/usr/local/lib/libglib-2.0.so.0(g_main_context_dispatch+0x1d5)[0xb7793f25]
/usr/local/lib/libglib-2.0.so.0[0xb7797bfb]
/usr/local/lib/libglib-2.0.so.0(g_main_context_iteration+0x68)[0xb7797e78]
/usr/lib/libgtk-x11-2.0.so.0(gtk_main_iteration+0x34)[0xb7cbb634]
mandelbulber[0x804cddd]
mandelbulber[0x804fc21]
mandelbulber[0x8057fe7]
/usr/local/lib/libglib-2.0.so.0[0xb77946a6]
======= Memory map: ========
08048000-0808a000 r-xp 00000000 08:05 1066006    /usr/bin/mandelbulber
0808a000-0808b000 r--p 00041000 08:05 1066006    /usr/bin/mandelbulber
0808b000-0808c000 rw-p 00042000 08:05 1066006    /usr/bin/mandelbulber
0808c000-08099000 rw-p 0808c000 00:00 0
09f40000-0a35c000 rw-p 09f40000 00:00 0          [heap]
b03d7000-b03d8000 ---p b03d7000 00:00 0
b03d8000-b0bd8000 rw-p b03d8000 00:00 0
b12af000-b12b0000 ---p b12af
[2]-  Aborted                 mandelbulber -lowmem

Initial startup, Animation tab:
nothing rendered yet; clicked “Record Keyframe”
(mandelbulber:8474): Gtk-CRITICAL **: gtk_entry_get_text: assertion `GTK_IS_ENTRY (entry)' failed

Segmentation fault

In loading app back up, started rendering a polynom^2 and loaded Timeline. The buttons were all shaped properly and the keyframe display was correct.  It was loading previous keyframes from before the crash.
They were now displaying the correct image corresponding with the keyframes and deleted “old” keyframes properly.
When recording new keyframe 0, it added properly and displayed what should be there.
Clicked on render window to zoom in, then clicked on Timeline->record new while rendering was still completing.
Took a couple of seconds longer than the first time (presumably because it had to render the tiny version), and added correctly with proper corresponding image.
Clicked to zoom in, again, and allowed image to render completely.
Modified the palette, though it did not show up as updated in render window, but when recording keyframe from Timeline, it updated the palette.
After 5 total keyframes were recorded, went to Animation tab and selected “render from keyframes.”
It went right to it, starting with a Trigonometric, not Polynomial Power 2 as set in the keyframes.
Trig was selected in the main window after keyframe 1 was recorded, but subsequent zooms still kept to the Polynom^2, as originally selected. The palette was the one set in keyframe 5, as of first frame.
If you want a screenshot of the behavior, I dropped it on my server.  Here's the link:

http://www.pmwdesigns.net/mandelbrot/screenshot.jpeg

Hope this helps.  I'll hopefully get more chance to run it through some paces later this week.  Again, great program and keep up the good work!

Phil
Logged
Buddhi
Fractal Iambus
***
Posts: 881



WWW
« Reply #7 on: October 18, 2010, 10:05:39 PM »

Thank you for detailed tests. Lowmem mode and Timeline window are completely things and there is a lot of bugs to fix. Every detailed information about errors is very helpful for me.
But please know that lowmem mode is only dedicated for rendering huge images prepared before in normal mode. It disables some memory structures inside program and disables postprocesing. In lowmem mode should work only rendering.

Some bugs which I have to fix:
- program crashes when "Record keyframe" button is pressed during Timeline initialization
- program crashes when timeline window is closed and "Record keframe" button form Animation tab is clicked

It is not bug but behavior of the program:
- there can be only one color palette for whole animation. It is only possible to animate palette offset.
To get proper color palette for rendered animation and also proper some other things, first you have to define all global options for animation (color palette, file paths, fractal formula type - all things which can't be animated) and save it to some settings file. Then prepare some keyframes. When you want to render the animation, first load this settings file and then press render animation.
Generally program animates all floating point parameters. Nothing more. All not floating-point parameters are taken from actual setup (e.g. loaded before from settings file) and will be the same for whole animation.
Logged

jwm-art
Iterator
*
Posts: 171



WWW
« Reply #8 on: October 19, 2010, 11:05:27 AM »

Hiya,
Here's a quick patch to stop the sigsegv on quit during a render.
cheers,
james.

* mandelbulber0.94-happy_quit.patch.txt (2.89 KB - downloaded 136 times.)
Logged
jwm-art
Iterator
*
Posts: 171



WWW
« Reply #9 on: October 19, 2010, 12:25:23 PM »

Here is a better patch than the previous patch. This also fixes the problem with the progress bar (I believe).

Buddhi, if you look in the patch, you'll see I've removed a few unnecessary signal handlers for destroy event - this is because the GTK documentation says[1] destroy event is rare and usually it needs to be enabled on a window.

In the previous patch, there was both delete_event and my new callback StopRenderingAndQuit. In this patch StopRenderingAndQuit is a replacement for delete_event as well as being used where gtk_main_quit was previously used as a callback (hope that makes sense).

Actually, that return statement is the real reason why things like this were happening:

Code:
(mandelbulber:8769): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkProgressBar'

(mandelbulber:8769): Gtk-CRITICAL **: gtk_progress_bar_set_text: assertion `GTK_IS_PROGRESS_BAR (pbar)' failed

(mandelbulber:8769): GLib-GObject-WARNING **: invalid uninstantiatable type `(null)' in cast to `GtkProgressBar'

(mandelbulber:8769): Gtk-CRITICAL **: gtk_progress_bar_set_fraction: assertion `GTK_IS_PROGRESS_BAR (pbar)' failed

Before my patches, delete_event was returning FALSE - this told GTK to propagate the event to other widgets. So when the window was closed, GTK propagated the delete_event to the progress bar - but the progress bar did not exist anymore because it had already been automatically deleted it by the destruction of the window.

Please note: use the patch named the mandelbulber0.94-quit_fix_a.patch.txt - the other misses a return statement.

[1] http://library.gnome.org/devel/gtk/2.21/GtkWidget.html#GtkWidget-destroy-event

* mandelbulber0.94-quit_fix.patch.txt (4.25 KB - downloaded 169 times.)
* mandelbulber0.94-quit_fix_a.patch.txt (4.27 KB - downloaded 139 times.)
« Last Edit: October 19, 2010, 12:49:58 PM by jwm-art » Logged
kon16ov
Conqueror
*******
Posts: 105



warep kon16ov
« Reply #10 on: October 20, 2010, 01:36:03 PM »

Buddhi -- thanks for the clarification on some of those things. 

I figured the lowmem was for big renders.  For those who don't know how much of a difference it makes: a 4096x3172 render of just the base image in "normal" mode allocates 618MB RAM.  (Painful on a system with 512MB RAM...  smiley )  In lowmem, it allocates 173MB.  Now, THAT's cool.

I figured that about the palette, as well, and while I think it would be just slick to morph from palette to palette within an animation, I also know that such a thing would be a titanic pain in the butt to code.  I was more concerned with the lack of updating the palette while I was trying to find that "sweet spot."  I'm thinking that it was more to do with my timing than the program -- when an image is rendering, at what point does it trigger an update?  Is it when it's calculating the ambient occlusion or should I just hold off until it finishes rendering just to be on the safe side?  (I kind of know the answer to this...but my patience -- or lack thereof -- gets me in trouble...)

I understand how the anims work, settings wise, but was just wondering about storing the fractal type in the settings, since my big confusion there was saving the keyframes for a Polynomial Power 2 and after closing the program and coming back to it, loading the keyframes it showed the PP2, but rendered the Trignometric.

It's at this point that I wish my C++ wasn't so blinkin' rusty so I could help out with this stuff instead of just asking weird questions. 

Thanks again for a great program and all the work that's being put into it!  If I used it like it was supposed to be used, right now, it does pretty much everything I need, it's just a matter of fine tuning which it sounds like you're working on, anyway.  Also, James, thanks for the patches -- good stuff!

Phil
Logged
windwakr
Forums Newbie
*
Posts: 3


« Reply #11 on: October 23, 2010, 10:37:24 PM »

Hi, awesome program.

One question, how can I zoom out? All three mouse buttons seem to zoom in.
Logged
kon16ov
Conqueror
*******
Posts: 105



warep kon16ov
« Reply #12 on: October 23, 2010, 11:48:52 PM »

Howdy,

On the "View" panel, the "backward" button should back you up.  This is also true within the 3D Navigator.  So, there's no way, yet, that I can discern to back up using the mouse, but through the panel you should be good to go.

And, yeah, it's a nifty program.  I dig it a lot.

Phil
Logged
windwakr
Forums Newbie
*
Posts: 3


« Reply #13 on: October 24, 2010, 12:59:26 AM »

So, there's no way to zoom out with the mouse? That's weird. You would think that if you can zoom in with it, you'd be able to zoom out with it.
Logged
kon16ov
Conqueror
*******
Posts: 105



warep kon16ov
« Reply #14 on: October 24, 2010, 02:15:39 AM »

Yeah, the controls probably weren't the foremost concern, at the time, if he was coding like I would code. It's getting there, though.  For now, use the View->backward control.  Control or shift don't do anything, either, and Alt is just good for moving the window around.    Absolute Distance mode is probably wise to use, there, too, as otherwise the backing up will take...a while to get a decent distance back.  I may be speaking out of turn, but I would think that the controls will get some tweaking love pretty soon.
Logged
Pages: [1] 2   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
Mandelbulber 0.80 Mandelbulber Buddhi 5 3207 Last post June 27, 2010, 05:30:54 PM
by knighty
Mandelbulber 0.85 Mandelbulber Buddhi 6 2084 Last post July 25, 2010, 10:00:13 PM
by kram1032
Mandelbulber 0.93 Mandelbulber Buddhi 12 3528 Last post October 17, 2010, 03:19:15 PM
by Buddhi
mandelbulber Help & Support ramblerette 1 448 Last post October 18, 2010, 02:56:02 PM
by ramblerette
comparison of mandelbulber and mandelbulb 3D? Other / General Discussion gussetCrimp 5 7465 Last post October 28, 2010, 01:54:16 PM
by kon16ov

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.325 seconds with 28 queries. (Pretty URLs adds 0.015s, 2q)