Logo by mauxuam - Contribute your own Logo!

END OF AN ERA, FRACTALFORUMS.COM IS CONTINUED ON FRACTALFORUMS.ORG

it was a great time but no longer maintainable by c.Kleinhuis contact him for any data retrieval,
thanks and see you perhaps in 10 years again

this forum will stay online for reference
News: Follow us on Twitter
 
*
Welcome, Guest. Please login or register. April 26, 2024, 08:20:48 PM


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] 3 4 5   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: QScripting Fragmentarium  (Read 6518 times)
Description: RFC:QScripting Fragmentarium
0 Members and 1 Guest are viewing this topic.
Patryk Kizny
Global Moderator
Fractal Fertilizer
******
Posts: 372



kizny
WWW
« Reply #15 on: August 05, 2015, 05:43:57 PM »

Would that be possible to expose also the custom screen buffer size  to be set from QS?
Actually, it would be also cool to provide some sort of onFrameChaged() handler that would execute an attached script on scrubbing.
« Last Edit: August 05, 2015, 08:39:51 PM by Patryk Kizny » Logged

Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
Patryk Kizny
Global Moderator
Fractal Fertilizer
******
Posts: 372



kizny
WWW
« Reply #16 on: August 05, 2015, 11:11:41 PM »

It looks like ther's something strange going on with the numbers rounding when coming from QTS to the interface widgets and then to the shader.

The following screen shows How the numbers do not fit at all.
Highlighted is a row that is applied to the sliders. sliders are all uniform vec3.
The columns are 123 --> js_Right, 456 --> js_Up, 789 --> js_Dir.

The problem is not that they are rounded at say 10th postion, but rather they are getting rounded randomly introducing unpredictable deviations.

Logged

Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #17 on: August 06, 2015, 12:26:37 AM »

My version of Fragmentarium used spinboxes with 5 decimals places, so something has changed. Internally, these values are floats (since thats what normal GPU's support anyway), so the precision is not high. Also, these sliders are auto-normalizing which might introduce some more inaccuracies.
Logged
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #18 on: August 06, 2015, 04:44:50 AM »

yes, the precision is jacked up a bit,
going from 11 decimal places in the data array to 9 in the gui should introduce some rounding,
would moving back to 5 decimal places be helpful in this situation? or make it worse?

edit: reverted back to original code and applied more decimal places w/o messing with the widget logic, 7 decimal places seems to be the upper limit even though double type is used internally for tracking the value shared by slider and spinner. (in v1.0.10 source)
« Last Edit: August 06, 2015, 07:24:58 AM by 3dickulus, Reason: upd » Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
Patryk Kizny
Global Moderator
Fractal Fertilizer
******
Posts: 372



kizny
WWW
« Reply #19 on: August 06, 2015, 11:35:23 AM »

Thanks for looking into that!
Logged

Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #20 on: August 07, 2015, 06:57:46 AM »

after some (more) testing I have set it up so that the slider sets the spinner and the spinner sets the slider and ComboWidget::setValue() sets them both but they don't interfere with each other ie:niether calls ComboWidget::setValue(), means you can type numbers into the value box unimpeded,  ComboWidget::setValue() is only used when reading parms from a file or editor to set both slider and spinner at once.

source code is available for testing w better exr handling too smiley
Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
Patryk Kizny
Global Moderator
Fractal Fertilizer
******
Posts: 372



kizny
WWW
« Reply #21 on: August 07, 2015, 10:15:19 PM »

Great! What are your thoughts on the QS buttons I suggested earlier in this thread?
Logged

Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #22 on: August 08, 2015, 02:27:59 AM »

Sorry Patryk sad but that's just too much for me, just haven't got the time and I'm trying to keep it simple, the basic minimum is there for anyone to elaborate on, the current functionality allows me tor run it on several machines in an automated fashion, that's all I really wanted but as a bonus we get scripting abilities with full access to all user created variables that show up in the GUI, the other thing that it needs is network abilities so that I can control the process from one box.
Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
Patryk Kizny
Global Moderator
Fractal Fertilizer
******
Posts: 372



kizny
WWW
« Reply #23 on: August 08, 2015, 09:07:23 AM »

No worries. You made a huge effort already and I appreciate all the tools. Maybe it's time for me to get into Cpp.
Logged

Visual Artist, Director & Cinematographer specialized in emerging imaging techniques.
lycium
Fractal Supremo
*****
Posts: 1158



WWW
« Reply #24 on: August 08, 2015, 11:40:53 AM »

No worries. You made a huge effort already and I appreciate all the tools. Maybe it's time for me to get into Cpp.

We should be working together for Martin anyway wink This weekend I'll do a bit more work on my fractal renderer, but my main problem is the Distance Estimators Sceptical
Logged

3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #25 on: August 08, 2015, 10:09:30 PM »

Great! What are your thoughts on the QS buttons I suggested earlier in this thread?
study up on the QScript docs and, as I have mentioned before, you will find information on using QDesigner to create your own GUI plugin that uses the script interface to control Fragmentarium. This feature of QScript could be used for custom dialogues tailored to your specific VFX pipeline needs.

just for fun some stats... and a little speculation.

There are 15,227 lines of C++ code in the current incarnation of Fragmentarium
Out of all accesses to Fragmentarium-1.0.10-3Dickulus.zip on my website only 3 are identified as being from a computer based browser the rest are bots and iPhones

Those 3 accesses
 1 Virgin networks U.K. Infrastructure
 2 China Mobile Communications Corporation Beijing
 3 Unitymedia dynamic customer IP pool Germany

this leads me to believe that only one (#3) is a real person that has actually downloaded the source code and that is possibly only for a look at the OpenEXR and/or QScript stuff so they can write it into their own code. (just speculating)

If I could make a suggestion, Patryk, write your own VFX studio version from the ground up in C++ around the fragment shader code as the rendering engine, this way you will have exactly what you are looking for in your VFX pipeline, or use Synthclipse which is easier to modify via java than Fragmentariums C++. It should be able to load your .frag scripts too.

Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #26 on: August 08, 2015, 10:39:28 PM »

Would that be possible to expose also the custom screen buffer size  to be set from QS?

the current list of commands available via fqs...

    void loadFragFile(name)
    void setParameter(name, bool)
    void setParameter(name, int)
    void setParameter(name, float)
    void setParameter(name, float, float )
    void setParameter(name, float, float , float)
    void setParameter(name, float, float , float, float)
    void setParameters(parmList)
    void setAnimationLength(int)

    void setTileWidth(int)
    void setTileHeight(int)
    void setTileMax(int)

    void setSubFrames(int)
    void setOutputBaseFileName(name)
    void setFps(int)
    void setStartframe(int)
    void setEndframe(int)
    void setAnimation(bool)
    void setPreview(bool)
    void tileBasedRender()

    void selectKeyFrame()
    void addKeyFrame(name)
    void clearKeyFrames()
    void initKeyFrameControl()

    int getFrame()
    bool initializeFragment()
    void callRedraw()

    bool scriptRunning()


the bold ones determine the buffer size.
Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
Syntopia
Fractal Molossus
**
Posts: 681



syntopiadk
WWW
« Reply #27 on: August 09, 2015, 01:05:18 AM »

I have also had this feeling about Fragmentarium myself: it is a lot of effort to make new UI features, and people have wildly varying feature requests. In particular I found myself limited wrt to the scripting, and how to extend to more flexible buffer configurations (to allow e.g. shadow mapping, bloom, DOF by blurring depth information, etc.)

Therefore I decided to try some other approaches starting a year ago or so. I wanted to make an API (which I called FragAPI), providing simple access to the following features: (1) Setting up buffers and the flow between them (including support for accumulated rendering and tile rendering) (2) Handling 2D and 3D cameras. (3) Some means of reusing shader code (like the 'include' syntax in Fragmentarium)

I made a prototype testing in JavaScript (2D only): http://syntopia.github.io/fragapi/
And some similar experiments in Java (using JOGL): https://github.com/Syntopia/Meshia/tree/master/FragAPI/src/net/hvidtfeldts/fragapi

However, these projects seem to be progressing in slow-motion for the time being, though I still think there is a use for a simple API for setting up GPU pixel graphics. GLSL is a wonderful and simple language to write in, but setting up the OpenGL stuff is a pain.
Logged
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #28 on: August 09, 2015, 03:32:43 AM »

setting up the OpenGL stuff is a pain.
indeed  tongue stuck out  things change fast too.
Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
3dickulus
Global Moderator
Fractal Senior
******
Posts: 1558



WWW
« Reply #29 on: August 11, 2015, 08:01:18 AM »

My version of Fragmentarium used spinboxes with 5 decimals places, so something has changed. Internally, these values are floats (since thats what normal GPU's support anyway), so the precision is not high. Also, these sliders are auto-normalizing which might introduce some more inaccuracies.

I think I fixed at least one thing, the Eye and Target values remained at 5 decimals while all of the other combo widgets happily operated at 7 decimal places after jacking it up a bit. This bothered me, a lot, because I couldn't figure out why, this may have been the source of the problem Patryk was having.

changed the slider min max from 0 and <a large number> to minimum*<a large number> and maximum*<a large number>
removed myValue and (myValue-minimum)/(maximum-minimum)
set slider from spinner with val*<a large number>
set spinner from slider with val/<a large number>

now the Eye and Target combowidgets use 7 decimal places.

the default precision in Qt is 6 decimals when converting between strings and floats so I also adjusted all conversions accordingly.

needs testing but it seems stable.

Logged

Resistance is fertile...
You will be illuminated!

                            #B^] https://en.wikibooks.org/wiki/Fractals/fragmentarium
Pages: 1 [2] 3 4 5   Go Down
  Print  
 
Jump to:  

Related Topics
Subject Started by Replies Views Last post
having fun with fragmentarium Images Showcase (Rate My Fractal) ker2x 5 2398 Last post January 14, 2012, 12:26:39 PM
by ker2x
Fragmentarium 0.9.1 Released Fragmentarium « 1 2 » Syntopia 19 4832 Last post June 10, 2012, 10:27:46 AM
by Syntopia
Help in Fragmentarium Fragmentarium Tim Emit 2 979 Last post January 15, 2013, 10:05:24 PM
by Tim Emit
Fragmentarium español Leonrott 4 3522 Last post January 09, 2014, 02:07:16 PM
by stereoman
I/O for fragmentarium Fragmentarium Patryk Kizny 6 1575 Last post November 13, 2015, 04:02:17 AM
by 3dickulus

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.199 seconds with 25 queries. (Pretty URLs adds 0.019s, 2q)