PowerPreview: High-Quality Nitrous Preview Tool


#1

I just wanted to inform you that i just released V0.50a (Beta 4) of my PowerPreview script on ScriptSpot.

It has come a long way since i posted the “proof of concept” version here in a thread somewhere.

Here is a list of some features, for people never heard about PowerPreview :

  • Create previews/snapshots of the Nitrous Viewport in the highest quality Nitrous can produce
  • Create previews and viewport snapshots up to 5k*5k pixel size ( even on lowres desktops),
  • Enable experimental Nitrous options ( like realtime reflection ) in the viewport
  • Realtime Nitrous parameter tweaking
  • Gives back live feedback during preview creation

etc…

For download please visit the scriptspot page
PowerPreview on Scriptspot

Feedback etc… welcome,
Please post in this thread or on Scriptspot for issues, rants and feature requests :rolleyes:

Here’s a screenshot of the interface and a viewport showing the sample Troll
Notice the Troll’s reflection in the chrome sphere…

Screenshot Fullres Version


#2

Great! And many thanks for making the freely available.
I still need to swtich to Nitrous for my daily work and the dynamic reflections are very cool. How do you enable them? Is this a hidden per-object switch or do you need to enable them somewhere in a material and if yes, do they work with 3rd party materials or mray materials only?

The preview image you posted on scriptspot (the one of the car) looks awesome!


#3

Oh dang… this looks like a must have.


#4

Awesome!! I was just wishing for this hte other day. I’m excited to check it out!


#5

Nice for quality previews :bowdown:


#6

Thanks for the kind words !!

Just posted a new version on scriptspot ( V0.50b Beta 4 )
This mainly fixed a stupid installer bug which caused to do… nothing… meaning install did not start. Except if you got a PowerPreview version installed already :wink:

@pokoy: reflections in the viewport…

Environment reflections are always enabled in Nitrous ( you can’t even switch them off)
They work under the following conditions

—> Show “Realistic Materials with Map” is activated

—> There is something to reflect:
“Environment Background” has to be checked in the viewport background options and “Show Background” is enabled.
Or “Use Environment Background Color” is enabled in the Viewport Configuration settings.
The first option overrides the second one

—> Mental Ray materials are showing reflections in the viewport

—> Standard Materials work too when you have a raytrace map in the reflection slot

—> Raytrace Material do NOT work ! ( material display can’t be switched to hardware )

This is for plain environment reflection

Via Maxscript you have access to an additional “.DynamicReflectionEnabled” options in the Viewportsettings interface. Using that you can have dynamic reflections between objects. It’s a bit buggy, and tends to fail from time to time ( at least on my graphics hardware - which is quite old) , but it works.
Propably it is more stable on newer gfyx hardware with plenty of video RAM . ( i got only 512 MB )

Here are two screens, ony with simply environment reflection , the other one including dynamic reflection


#7

Looks amazing, thanks a lot Josef! :bounce:


#8

Fantastic work! :slight_smile:

The only thing missing now to satisfy certain clients with a simple viewport rendering (;)) would be motion blur and depth of field… do you think, those can be added as well? Right no only the Direct3D driver supports them, I guess…


#9

Thanks !

Yes … sadly you are correct -> only D3D mode supports DOF and MBlur
Nitrous is not capable to do it currently -> so this will most likely will not be possible with curent Max Version…*

But enhanced D3D mode support is on the to do list for the script too, so expect something like Bobo’s viewport explorer with adjustable sliders/spinners in PowerPreview sometime in the future

regards, Josef

  • but never say never…

#10

I was thinking, would it be possible to implement DOF and MBlur in Nitrous by “just” copying what Max’s own D3D approach is doing for those effects? Maybe it’s not necessary to have access to the function itself, but writing a version of it yourself…

I know, this sounds like the standard script noob’s question of “why can’t you just program it?”, but that’s not how I mean it… just trying to give you some ideas… Inception, basically :smiley:


#11

This is to some degree the same what i have had on my vision…
But knowing the reality of coding and the technical boundaries i have to cope with, i think without having access to a lower level of the Nitrous/OGS API this would be a near impossible task.
Nitrous eg. does’nt provide a screenspace shader interface for example, where it would be possible to use G-buffer info ( like z-Depth, object id’s etc… ). Nitrous is a deferred renderer, like modern game engines, so such a thing would really make amazing things possible…
but - as said that’s just a dream currently…


#12

As far as I understand it, the Direct3D DOF and MBlur don’t use any G-buffer data anyway.

DOF works by offsetting the camera in a circular manner (depending on the number of samples you choose), while staying “targeted” on the desired focus depth. These different perspectives are then blended together to create the blurred image.

MoBlur appears to be even simpler, in that it just records the subframes before and after the current frame (again, depending on the settings) and blends those together.

It seems to be more of a brute force method, without using any fancy G-buffer trickery. I don’t know though to what extend Nitrous access allows storing images internally, blending those with each other and outputting the result.


#13

yeah - you are correct, they are pretty brute force, but that only works because the rendertime per frame in D3D is in the milliseconds range. As the concept of PowerPreview is to give Nitrous time to do it’s progressive refinement ( leading to many seconds of rendertime per frame ), this method would not be very viable for Nitrous. Additionally it would destroy the great quality Nitrous is able to produce.

Thus the only options currently are:

  • wait for the next generations of Nitrous and hope they implement such things like DOF etc…

  • come up with a combined solution of rendering the visual output by Nitrous, and let the motion and depth data be generated by one of the standard renderers in a ultra quick render pass. After that apply some magic using public algorithms/sourcecode/dot net assemblies available…
    haven’t looked for the latter, but that is on my distant future vision for PowerPreview

But currently there are more fundemental features and things waiting to be implemented, so this is not really on the current agenda :wink:


#14

Fair enough :slight_smile:

And even the absence of those features doesn’t lessen the greatness of the script :wink:


#15

I am seriously loving the dynamic reflections, that is such a nice hidden bonus in this tool. PowerPreview really needs to be integrated into the Viewport capture menu and ship with max.


#16

Haha - nice suggestion :twisted:

guess i should push hard to refine stability and features than…
don’t want to cause Autodesk’s problem report database being flooded even more than it already is …


#17

I don’t see why not, it’s silly for them to push Nitrous and then completely lack an ability to capture it to stills or video. The functionality is sorely missing, and I don’t really like the “oh, just use Quicksilver” logic, since there are sometimes differences between Nitrous and Quicksilver.

I am getting a bug though when using PP, in that it seems to capture the first frame of my video well, but subsequent frames are low quality, even though they still take the same amount of time. I am saving each frame to a .png file, could this be the cause of my issue?


#18

PNG works fine, i use them myself, because of that still existing 1GB AVI file bug

Depending on the scene you render, try to disable the “use iteration limit” button
Nitrous might itself fail from time to time ( does that in the standard viewport too)
Best method is to use a high timelimit on the first frame-> when it looks okay -> fine, reduce the time limit. When somethings wrong -> toggle some nitrous option to “reset” the refinement process ( nitrous starts from scratch for that frame…)
By bad quality you mean no refinement going on, everything looks like it was without progressive refinement ? Meaning you don’t notice any smoothing in the frame over time ?


#19

Realy thank for this script, is realy perfect, but i have problem to do 2k (2048x1556) previews, the first frame looks good bud every next is it has 2k resolusion but image is stretched it looks it is zoomed from maybe 640x480 resolution.
I figureout that it happens to me only with complex scenes for example whent i tryed to preview cloth simulation with many verticles and tearing , (normaly also clicking on timeline takes maybe 30 secons to standart viewport refresh). If you want i can send you scene


#20

Thanks again for this tool, and right now I’m using it intensively for creating all the preview stuff for my current project.

Some minor quibble from me:

  • I sincerely hope you can find away to allow switching to another window while rendering the preview, while Nitrous refinement still keeps going! Viewport previews are alreaady saving a lot of time as they are, but it would be even better if I could work in another window/program while rendering.

  • Frame numbering is driving me nuts: each file sequence starts at 0, instead of just taking the actual frame numbers for it… I guess that’s quite an easy fix :wink:

  • Tiny one: Viewport snapshot isn’t snapshooting (is that a word?) the current frame, but the start frame set in the preview time range… grabbing the current frame would be more sensible, I guess.

  • It would be a good idea to have PowerPreview disable Max’s autosave while previewing, as it messes up the preview when it happens during rendering (the preview window gets switched to full screen, thus getting a different frame size for the rest of the preview)

  • An option for disabling the ViewCube in perspective views

  • And some feature requests at the end: Output of Alpha-channel (or at least a “silhouette” render style), Z-channel, Object Masks, Ambient Occlusion, Shadows and whatever Nitrous supports.