RenderMan 是什麼?
RenderMan 是什麼?直覺反應會覺得,它是 Pixar 這個動畫公司所研發出來的一套 renderer,算是現在電影特效與 3D 動畫業界,最舉足輕重的軟體之一。
其實呢,RenderMan 並不是這個意思…
RenderMan 這個名詞,因為大家誤用的關係,光是單講 RenderMan,它代表的意義可以有很多,而且每個都還非常的不一樣:
- The RenderMan Interface Specification (RISpec)
在這裏,RenderMan 其實只是一個檔案的格規定義,就像 HTML 的其中一個意思,就是指網頁裏頭可以使用的語法的定義。遵守這個定義的檔案,一般副檔名都是 .rib,取其 RenderMan Interface Bytestream Protocol 的縮寫。是一種檔案,這個檔案可以看成是 renderer 與 3D scene software 之間的一個橋梁。簡單來說,可以把 RIB 想成是 Maya, 3DS Max, Houdini 與 renderer 之間的溝通格式。 - RenderMan Shading Language
定義了寫 shader 的語法。現在的 Cg, HLSL, GLSL 都算是它的晚輩,很多地方看得到學它的影子,而且,因為 Cg 這類 shading language 都是給 GPU 用的,所以限制來得比較多。 - PhotoRealistic RenderMan (PRMan)
全世界第一套實作出來,會吃 RIB 然後算出圖來的 renderer,由 Pixar 研發的。
- Drake's blog
- 留言回應
- 4780 reads
Kesson 教授的回信
Wonderful to hear from you. I spent a most enjoyable 12 days in Taipei last summer. I taught a 5 day class of RenderMan at DCI. Thank you for telling me about the kind words of one of my (best) students. Very encouraging.
The "RenderMan Companion" by Upstall has 3 chapters (maybe 4) devoted to shader writing. Although it is an old book, it is still very good. "Advanced RenderMan" by Apodaca and Gritz is very good although sadly it was written before the raytracing extensions were added to prman. You may like to follow some of the links on one of my class pages,http://sfdm.ca.scad.edu/vsfx/faculty/mkesson/Ca301/index.html
Fundza.com has some good examples. Many of the pages that I wrote for my site need to be revised but, nonetheless, despite their over-simplifications they are OK. "rendermanacademy.com" is good but I find it a bit difficult getting around it. Stev Mays "http://accad.osu.edu/~smay/RManNotes/" is very good.
For studio use you may like to convert any shader you have written into a slim template for use with mtor/slim with Maya. Cutter has a pretty good built in translator that reads the source code for a shader and converts it to a slim template. This effectively produces a custom node for slim. Unlike a regular shader that is pre-compiled and hence "unlinkable" as an item in a shading network, a template produces a first class node for slim. It can become part of a shading network.
http://www.fundza.com/cutter/slim/overview2.html
For my own teaching I sometimes introduce students to the shading language by showing them how to write a displacement or a surface shader. I do not get into raytracing until they chose to do our advanced renderman class. Just about all the surface shaders we write do not even take ambient or specularity into account. Just this,
/* Shader description goes here */
surface
diffuse_test(float Kd = 1 /* basic brightness */)
{
color surfcolor = 1;
/* STEP 1 - make a copy of the surface normal one unit in length */
normal n = normalize(N);
normal nf = faceforward(n, I);
/* STEP 2 - set the apparent surface opacity */
Oi = Os;
/* STEP 3 - calculate the diffuse lighting component */
color diffusecolor = Kd * diffuse(nf);
/* STEP 4 - calculate the apparent surface color */
Ci = Oi * Cs * surfcolor * diffusecolor;
}
If this is compiled in Cutter (alt + e) a test rib file can be easily generated. Cutter has a floating palette called Rman Tools. It has a Docs menu, the first item of which is "Single Frame Rib". Once chosen, Cutter will open a rib document suitable for testing the new shader. After that it a matter of change something in the shader code, alt+e to compile a new version of the shader, then click on the rib window and again alt + e to render the image.
Once you have a shader that does something mildly interesting you can use it in Maya via pixars plugin called mtor. Back at Cutter the shader can be converted to a slim template by choosing "Rman Tools->Shaders->Preview Slim Template". Another doc will open that contains the slim code based on your shader. If you have Maya Unlimited you can open a command port in mel,
commandPort -n ":2222"
In Cutter with the slim doc as the front window again alt +e and Cutter will send the slim code to Maya. A palette will open, loaded with the new node ready for editing and subsequent use. All the parameters of the slim node will be able to be connected to other nodes - just like HyperShade.
Good to hear from you. Stay in touch.
Malcolm
- Drake's blog
- 留言回應
- 2907 reads
向外國教授請教 Renderman
I noticed your website and your work on renderman in reading the following article by one of you students.
http://forums.cgsociety.org
and then I found, wow, what a great website about renderman programming and that Cutter Text Editor. and soon, I downloaded Cutter and started to think about using it for mel programming (I am not yet familiar with renderman programming) instead of gVim although I have also retrieved a full complete function list from maya doc server and made it as syntax file for vim because Cutter seems more attractive and I was very interested in that CommandPort feature. I will dissect it and give you feedback ;)
currently, I am thinking about studying renderman shader concept/programming because I am in a Taiwan company aiming for being a great 3D animation studio in Taiwan and my current position is as a Effect TD. therefore, I got lots of opportunities and equipments ( nice workstation, maya, shake, renderman and renderfarm ) to learn what I want to learn. so lucky I am.
In your great website ( http://www.fundza.com/ ), I think I can ask you how to start my renderman shader/programming road. would you please suggest or instruct something by your long-term experience in this for me to learn renderman ?
Oh! I forgot to tell you. my background is computer science and my major is computer graphics in graduate. therefore, I have good programming skills and it's always not the problem for me to do coding and learn a new coding. and I have basic knowledge of computer graphics.
Sincerely Yours,
- Drake's blog
- 留言回應
- 6194 reads
What is a shader?
SHADERS
Clearly, shaders play a crucial creative role in defining the appearance of a CG production. RenderMan has been adopted by many leading studios because it allows special purpose shaders to be added to those that already exist.
Individual shaders are small sub-routines (functions) written in a specialised programming language called the Pixar Shading Language. The language enables new shaders to extend the creative possibilities of the renderer; it allows computer artists to find endless ways of controlling the appearance of a 3D scene through the use of custom shaders. The only limit is their imagination, their ability to write new, or adapt existing shaders and their creative flare at adjusting the parameters that control the visual effect of a shader.
In some respects RenderMan shaders are analogous to plugins for, say, PhotoShop and AfterEffects. Plugins for those applications provide extra functionality to their host program. Likewise, shaders "work" within the environment of a renderer.
上述段落的出處:http://www.fundza.com/rman_shaders/overview/overview.html
對於第二段的最後一句的感受很強烈,強烈到一種像是被給了一巴掌似的,那種明明早就知道的情況,但卻無力做好,然後被指著說還沒有反駁的立足點。我想成為一位夠擔當的 TD(Technical Director),於是常常徘徊在「技術 spec 的瞭解與專研」和「美感 sense 與選對工具並好好活用」之間,這感覺十足惱人,非常惱人。管它的,就是學好學精一樣東西就對了。
- Drake's blog
- 1 則回應
- 4777 reads
- « first
- ‹ previous
- 1
- 2
- 3

