Proof of concept: Maxtor


#21

Sweet, I’ve had a gander at some RMan compliant free renderers but never paid them much heed, being kinda useless without a max connection. But this changes everything :slight_smile:

Keep it going Alex!


#22

Thanks for the feedback Wahooney :slight_smile:

Just a test render. (I’m trying to make this tool as robust as possible, experimenting with as many Renderman renderers I can get my hands on)

3Delight again. (Favourite so far)


#23

Here’s some settings you can tweak:


#24

I love the way your implimenting this RM translator. Using modifiers to control how you pass the geometry to RM is a cool approach. Thinking out load, I wonder if there is a way to create a modifier that would pass sub D info to mental ray, like your doing with Maxtor? I’m not asking you to do this, just posting the question in general.

Please keep up the good work! I’m enjoying seeing how far and how fast your building this.


#25

Hi, thanks for the comments, slebed.

I’m no expert in mental ray, but I’m fairly sure that its scene description language supports rendering a mesh as a SDS. But the thing is, the 3ds max -> mental ray bridge probably doesn’t output an intermediate MI file AFAIK. It probably uses the C/++ api to directly send data in-memory to mental ray, kind of like my C++ version of MaxToR did on the first post of this thread. But sure, if the bridge writers for max to MR wanted, they could probably do it. I don’t know all the facts about this.

Although, being a ray-tracer by nature, I’m not sure how efficiently MR would handle a SDS, it would probably still have parameters to tweak the fineness or coarseness of the tesselation of the rendered mesh, like you have with displacement. That’s the kind of problem you don’t have in Renderman, there’s no setting for the fineness of a SDS, it is always perfectly fine/smooth, no matter how close you zoom in.

For tweaking the quality of shaders, the main setting is Shading Rate, and the value you set that to depends on the frequency of your shader. A value of 1 is typically a high quality setting, the only time you’d drop it to 0.1 or so is if you have a really detailed displacement going on and you lose some details.

The other cool thing is that the shading rate has no effect on the anti-aliasing of objects themselves, so you can increase the shading rate to say 5 (which means really fast rendering), and still get perfectly crisp edges due to PixelSamples 3 3, which control your anti-aliasing (together with the filter), essentially.


#26

Preliminary RiCurves exporting:

Note, this is still very early and immature, I’ll have to think about how exactly I want the user to control the curves.


#27

Ok, got some very basic curves working – now I need to implement DeepShadow map support… heh. The curve export is still very immature of course, just did it today.


#28

Ok, Deep shadow map support :slight_smile: Check out the motion blurred shadows!

These both have Sample Range = 4. Which is too much blur, IMO.

Normal shadow maps, same settings: (Note, these don’t support motion blur)

Here’s with Sample Range = 1. Deep Shadow map:

Standard shadow map: SR = 1


#29

This is very very interesting Alex, keep us updated :slight_smile:

-the0


#30

Thanks for the feedback, theotheo :slight_smile:

Here’s another important example as to why DSM rock:

A moving sphere on a plane: With and without DSMs. (3Delight)

Updated lightModifer to take into account DSM configuration:


#31

Here’s a hairy ball with Deep shadow maps:


#32

F**k man, that´s great :smiley: I wonder if we will see some nice displacement tests someday soon…? :smiley:

keep the good job!


#33

Heh, thanks… To be honest I haven’t written many displacement shaders. Feel free to provide me with one :wink: But yeah, I should try them out.


#34

This is getting better and better at an amzing pace! Don’t forget to get some sleep, getting hospitalized won’t get the plugin done faster :stuck_out_tongue:

Just kidding, hope you don’t mind. The tests really look amazing. I was astoned by the speed it had with dof+mb… and now by this hair render which looks great!

Congrats!


#35

Thanks for the comments, Rockin :slight_smile: Nah, heh, don’t worry, I’m in good health. Most of the stuff you saw on the first page was pretty much done a year ago, I just hadn’t touched the plugin since, and now decided to refactor it and make it (hopefully) usable in production.

Just added a little feature:

MaxToR now respects the “Diffuse” and “Specular” checkboxes of lights under “Advanced Effects”


#36

Ok, you asked for it, the Pixolator head in 3Delight/MaxToR:

I had to write/hack some of my own shaders to make it look nice/normal.


#37

And the ZSword (Had to write/modify my own shader again)


#38

Ok, got arbitrary output variables (or Render passes) implemented :slight_smile:

You can have as many passes as you want, no problem.

New Video

http://www.savefile.com/files/825439


#39

I want DSM in Max Scanline too…

Sort it out Alex, chop chop.

:wink:


#40

Heh, you wish the scanline renderer had DSM. Might wanna give Autodesk a call and request it?

Anyway, this new feature I’ve been working on should make the hardcore Renderman TD’s happy. I warn the artists though, your brain may explode after reading this. If you understand it all, then great job :slight_smile:

Like MtoR, MaxToR now supports per-facevertex arbitrary point data which is exported as facevarying primitive variables (primvars) to Renderman. These primvars can be used in all sorts of ways in renderman shading. It allows you to specify arbitrary concepts on a facevertex level, E.g. Slipperyness, temperature, or anything the TD wants. You do this by creating a custom channel in the `channel info’ utility, and giving it the name you want to use as the primvar. In this case it’s “myParam”.

I’ll let the picture do the rest of the talking:

Note, just picked up a few mistakes: To be correct, the “point” in the surface shader’s parameter declaration should be substituted with “float[3]”, and the attribute() call has no place there. It should have been omitted.