Weber
|
|
« Reply #15 on: July 30, 2016, 04:54:52 PM » |
|
This is very good news!
I would like to see a few things change with the new version.
-Better lighting/more lighting options -Ability to fine tune texture position/size -Better/Faster rendering - I don't exactly know how to put this, so I'll just take a shot. There needs to be something in the window that tells the user how much geometry/complexity is going on in a particular fractal. Some fractals extremely slow down the program compared to others that run smooth and render quicker. Some of these are very hard to navigate through as well. For example, I have an m3i that is using 5 formula slots and only one light with really not much more and is way slower than other m3i's that are using all 6 slots with a lot of post processing! Like it takes longer than 5 min. to render @960x640 with only Hard shadows and ambient shadows with this particular m3i.
|
|
|
Logged
|
|
|
|
Sockratease
|
|
« Reply #16 on: July 30, 2016, 05:33:36 PM » |
|
This is very good news! Agreed! ...-Better lighting/more lighting options ... -Better/Faster rendering... Better lighting how? And what lighting options would you like? Faster rendering is always something folks want, but again - better rendering in what way? Hope nobody minds me butting in and asking that - but like bug reports, requests should have a little more details when asking for improvements. I do like the idea of a complexity alert, or any warning that the options you chose will require "longer" render times (I know that sort of thing changes for everyone, so may be harder to actually pin down - but I too find myself setting things up in the Navigator then being surprised at the render times in the main window). My own request would involve the Navigator. Since it has a totally different render engine, often things look very different in the main window. That's fine! Nature of the beast, as they say. But if there were some way to render from the navigator so we can get a higher resolution picture of what we see in there, it would be nice. Maybe a "render to disc" option in there, with pixel dimensions entered manually, so the screen does not need to resize or use scrollbars?
|
|
|
Logged
|
Life is complex - It has real and imaginary components. The All New Fractal Forums is now in Public Beta Testing! Visit FractalForums.org and check it out!
|
|
|
Weber
|
|
« Reply #17 on: July 30, 2016, 07:20:41 PM » |
|
Better lighting how? And what lighting options would you like? better rendering in what way?
1. More realistic lighting, environmental lighting, better shadows, and shaders etc. 2. Selectable rendering modes and global illumination modes like QMC( Quasi Monte Carlo)etc... This would also include the ability to have different texture/material types like fresnel etc... that would tell the renderer how to interact better with the material its rendering. Obviously you only have one texture map to work with but by adding a little bit more tweakability, I think the final results would be even more amazing! I've done a lot of work with V-ray rendering and so having these options are a must for me. Furthermore, having the ability to add normal and specular maps would be a great feature as well.
|
|
|
Logged
|
|
|
|
|
0Encrypted0
|
|
« Reply #19 on: July 30, 2016, 11:28:34 PM » |
|
Would it be possible to code the core application with an API so other developers could design external add-ons to customize the user interface and/or post processing options? Alternate, Interpolate and DEcombinate are the current methods to hybridize formulas. Is the Coupled Mandelbrot Sets (CMS) method applicable to 3D? Could it be added to the above methods?Moved to Coupled Mandelbrot Sets (CMS)Side note question to MB3D users, have you used the Interpolate method and if so can you link to some images created by this method?Disregard, as I do not want to clutter this thread with off topic posts. New thread Have you used the Interpolate method?Application program interface (API)
|
|
« Last Edit: July 31, 2016, 06:25:43 AM by 0Encrypted0 »
|
Logged
|
|
|
|
valera_rozuvan
|
|
« Reply #20 on: July 31, 2016, 12:57:18 AM » |
|
Would it be possible to code the core application with an API so other developers could design external add-ons to customize the user interface and/or post processing options?
In the long term - yes. A method to add plugins, such as the one used in Blender, can be created. An interpreted language, such as JavaScript or Python, can be used for plugin coding. However, this has to be thought through carefully, and the design of the program must allow for such a system in the future.
|
|
|
Logged
|
|
|
|
|
valera_rozuvan
|
|
« Reply #22 on: August 02, 2016, 03:32:21 AM » |
|
I have come to the realization that it takes a lot of time to convert a MB3D formula to working C code. For example if we look at the file Kalisets1.m3f, we see in the CODE block: 558BEC56578B75088B7E30DD01D9E1DD02D9E1DD00D9E1D9C0D8C8D9C2D8C8DE C1D9C3D8C8DEC1DC47E8DC7FF0DCCADCCBDEC9DC4618DD18DC4620DD1ADC4628 DD195F5E5DC20800 This roughly translates to the following assembly: .data:00000000 55 push ebp .data:00000001 8b ec mov ebp,esp .data:00000003 56 push esi .data:00000004 57 push edi .data:00000005 8b 75 08 mov esi,DWORD PTR [ebp+0x8] .data:00000008 8b 7e 30 mov edi,DWORD PTR [esi+0x30] .data:0000000b dd 01 fld QWORD PTR [ecx] .data:0000000d d9 e1 fabs .data:0000000f dd 02 fld QWORD PTR [edx] .data:00000011 d9 e1 fabs .data:00000013 dd 00 fld QWORD PTR [eax] .data:00000015 d9 e1 fabs .data:00000017 d9 c0 fld st(0) .data:00000019 d8 c8 fmul st,st(0) .data:0000001b d9 c2 fld st(2) .data:0000001d d8 c8 fmul st,st(0) .data:0000001f de c1 faddp st(1),st .data:00000021 d9 c3 fld st(3) .data:00000023 d8 c8 fmul st,st(0) .data:00000025 de c1 faddp st(1),st .data:00000027 dc 47 e8 fadd QWORD PTR [edi-0x18] .data:0000002a dc 7f f0 fdivr QWORD PTR [edi-0x10] .data:0000002d dc ca fmul st(2),st .data:0000002f dc cb fmul st(3),st .data:00000031 de c9 fmulp st(1),st .data:00000033 dc 46 18 fadd QWORD PTR [esi+0x18] .data:00000036 dd 18 fstp QWORD PTR [eax] .data:00000038 dc 46 20 fadd QWORD PTR [esi+0x20] .data:0000003b dd 1a fstp QWORD PTR [edx] .data:0000003d dc 46 28 fadd QWORD PTR [esi+0x28] .data:00000040 dd 19 fstp QWORD PTR [ecx] .data:00000042 5f pop edi .data:00000043 5e pop esi .data:00000044 5d pop ebp .data:00000045 c2 08 00 ret 0x8
Now, that file also has a short description which has information about the actual mathematics that is going on: x = abs(x) y = abs(y) z = abs(z) m = Scale/(x*x + y*y + z*z + Fix) x = x*m + Cx y = y*m + Cy z = z*m + Cz I tried first to program a C function that directly resembles the assembly code (i.e. as if I didn't have the math equations). This manual conversion of assembly code to C code took me a couple of days. Mainly the testing and debugging of the original MB3D formula inside the Mandelbulb3D program (to verify if my C version is working correctly). Now this is a simple formula. There are others not so simple. Also, there are about 300 of them! So, scratch the idea of converting EVERY single formula... until I get myself Hex-Rays Decompiler which can automate the process for me. But that piece of software costs a lot! An x86 Decompiler License costs 2350 USD! I think that, initially, I will make available formulas from MB3D which have a detailed high-level description for them (mathematical or pseudo code). I will program them from scratch. Maybe in the future, I will get myself one of those shiny Hex-Rays Decompilers...
|
|
|
Logged
|
|
|
|
0Encrypted0
|
|
« Reply #23 on: August 02, 2016, 04:50:50 AM » |
|
@valera_rozuvan What do you envision as the new code format for formula files?
Consider converting just a few formulas to start out and letting the community recreate the majority of remaining m3f files.
Also need to check with DarkBeam to see if he has notes on the intermediate steps used when coding m3f formulas.
|
|
|
Logged
|
|
|
|
mclarekin
|
|
« Reply #24 on: August 02, 2016, 05:05:23 AM » |
|
I do like the idea of a complexity alert, or any warning that the options you chose will require "longer" render times This is a good idea, another to consider is to alert users as to how good the Distance Estimation calculation performs ie excellent or average. There are a few M3D formulas that are re-written in C++ in Mandelbulber that you should be able to port easily.
|
|
|
Logged
|
|
|
|
valera_rozuvan
|
|
« Reply #25 on: August 02, 2016, 05:48:12 AM » |
|
What do you envision as the new code format for formula files?
Formulas will be defined in pure C language. Along with them there will be several files: 1. Image - preview of rendered formula. 2. Readme file - human readable (text) description of the formula. 3. Config file - all of the formula function's constants, parameter names, ranges, and other information needed at run time to make use of the formula. Format of this file probably will be JSON (very easy to write). All of the formulas will be stored in a separate GitHub repository. Anyone can create a new formula, and propose it's addition to the GitHub repository (in the form of a pull-request for non-dev members). From within the program, you will be able to fetch all the latest formulas with a single click of a button. This gets rid of the need to release a new version of the program just because some new formulas have been created on FractalForums. It will be possible to create, and modify a formula from within the program. JIT compiling will probably be done via LLVM. Also, it will be possible to load a formula from a file, from a copy-paste operation, or even specify a different Git repository with many formulas.
|
|
|
Logged
|
|
|
|
mclarekin
|
|
« Reply #26 on: August 02, 2016, 06:25:08 AM » |
|
. There are a few M3D formulas that are re-written in C++ in Mandelbulber that you should be able to port easily. Also these are M3D formulas with extra parameters, when you are ready I can advise you. Consider converting just a few formulas to start out and letting the community recreate the majority of remaining m3f files. That is a sensible idea, say 30 people doing 10 each, would have it done quickly. I would volunteer to do 10 - 20 (preferably the formulas I understand).
|
|
|
Logged
|
|
|
|
1Bryan1
|
|
« Reply #27 on: August 02, 2016, 11:56:16 AM » |
|
Firstly. WOW.
Secondly. I functionally like everything about the MB3D. I especially like the Navigation window and the way the fractal shown acts like an object (i.e. when zooming, you do not move through the surface) and that this can be switched off (do you can move through the surface).
What I find really challenging is the rendering time of the main window. If this could be reduced - it would be wonderful (I look in envy those GPU programs that reader vire so quickly).
Apart from that, just one other thing - I automate the hell out of MB3D to produce 1000's of potential renderings (sort of like thargor6's MutaGen however my program learns about what I like in fractals and tries to please me). This manipulates the MB3Ds windows and controls to change values and render small images (also how I produced the 35,000+ images of the combination of all pairs of formula). This is a rather painful process - if there was a API / Web service exposed by MB3D then automation would be so much easier (i.e. an external program could query, set and request changes just like the user).
|
|
|
Logged
|
|
|
|
Madman
Fractal Molossus
Posts: 678
|
|
« Reply #28 on: August 02, 2016, 08:52:14 PM » |
|
I tried first to program a C function that directly resembles the assembly code (i.e. as if I didn't have the math equations). This manual conversion of assembly code to C code took me a couple of days.
It's been a while since I've been programming in C, so I might say something stupid... Isn't there an assembly module in your C compiler somewhere? I know there was in Borland C++ (I told you that it's been a while...). @ 1Bryan1: Not quite sure if we need more automation in fractal generation. It kind of takes the creativity out of the proces, doesn't it? I am not a frequent user of Mutagen; I think the almost realtime modifications you can do in the Navigator should be enough
|
|
|
Logged
|
All I want is a warm bed, a kind word and unlimited power (Ashleigh Brilliant)
|
|
|
valera_rozuvan
|
|
« Reply #29 on: August 02, 2016, 08:56:00 PM » |
|
What I find really challenging is the rendering time of the main window. If this could be reduced - it would be wonderful (I look in envy those GPU programs that reader vire so quickly).
Unfortunately, GPU is not the be-all end-all solution. If you increase the number of formulas used to build a hybrid fractal, the time of a high quality render will also increase. It doesn't matter if it's CPU rendering or GPU rendering. If the number of calculations increases - the time to perform all of those calculations increases too. The way out of this problem is massive parallelization of calculating resources. I am thinking of integrating into the future program a system which will allow for easy configuration of multi-system rendering setups (farms). So, for example, if you have access to 100 Amazon EC2 instances, with the program running on each one, then you just have to specify the IP range of those EC2 instances in the main program, and enable "Calculate in parallel" setting. That's it. Now instead of 100 hours, it will take roughly 1 hour to do the job.
|
|
|
Logged
|
|
|
|
|