![]() RenderMan Pro Server 16's physically-plausible shading makes use of both structs and class-based shaders. The ShadingContext struct is intialized in the begin() method of a class-based shader, and can be used throughout the shading pipeline for easy access to ray depth, the faceforward normal, tangents, etc. One good example is Pixar's ShadingContext struct, which stores a myriad of data about the current shading point and provides many utility functions for dealing with that data. In my case, I used several Pixar structs and a custom struct for my final shader. Structs can be used to store functions and data for reuse across the shading pipeline, and mainly serve to organize code and facilitate reuse. This framework, along with user-created functions, is essential to creating a MIS-aware material in RPS 16. Additionally, values from these internal methods are cached, offering further speed advantages.Ī more advanced version of shader objects utilizes multiple functions to break up the lighting process, as well as an initialization function to precompute values and speed up the shading process. This way we can accomplish the same behavior without ugly changes to the surface shader code. In RSL 2.0, the opacity method executes before the surface method, and will not run the surface shader if the opacity is below the threshold. Malcolm mentioned this as a scenario with shading of tree leaves, and I suspected then that the speed could be improved by solving opacity first, and then wrapping the rest of the surface shader in a conditional based on the opacity being greater than some threshold. In RSL 1.0 shaders, the shader may execute all the way to the end, only to end up with an opacity of 0. This allows for the sharing of data between these methods and more efficient execution by breaking the shading process into separate methods. ![]() Both provide benefits to the shading pipeline speed.įirst, the new shader objects (or class-based shaders) can contain separate methods for displacement, surface, and opacity in the simplest implementation. RSL 2.0 introduced two new concepts - shader objects and C-style structs. Prior to this project, I had never attempted anything involving combined shading or shader objects. With RPS 17 and beyond, most of these features are standard, and I haven't continued development as I no longer have a RenderMan license at home. ![]() The original page is still available here. Hopefully now both you AND God know what I'm talking about.The following is a transcription of one of my independent projects while I was a student at SCAD. You've also provided no meaningful information about the issues you've had - simply stating "very flaky" and "doesn't run right" is pointless how on earth can anyone help you to troubleshoot the cause if that's all the detail you're going to offer up? You go on to state "PRmam doesn't run right as it should."Īgain, on YOUR machine! The language and tone of your posts suggest you aren't prepared to accept that the problem you have may very well be specific to your particular setup. It's clearly very flaky on YOUR Mac, but given that it runs fine on the 2 different Macs I've installed on (a 5 year old Mac Pro running Mavericks and a 2 year old MacBook Pro running on Yosemite, for the record), plus at least 2 other Macs that I personally know of that a couple of colleagues of mine use, would you not agree that the flakiness you're experiencing is likely to be specifically an issue with your setup? What I am suggesting is that your blanket statement of "Very flaky on a Mac" was inaccurate. Dave, I wasn't suggesting your Mac was crap - perhaps I wasn't being very clear.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |