|
|||||||
![]() |
|
|
Thread Tools |
|
||||
|
I know the plugin will be of interest to Cekhunen at least but also for others who own Maya (by whatever means - not the PLE though), you can try out a decent Renderman renderer on all platforms.
3delight 5 has quite a few new features and improved raytracing speed. It now supports area lights in the sense that you can make arbitrary geometry into an area light. Some may be aware that I've been modifying the Blenderman script to work better with 3delight and I was going to release it sooner but I planned on having a more advanced toon shader available to play with and I've had some problems with it. The first one from Advanced Renderman uses a simple calculation of variation in surface normals but doesn't recognise edges properly. So I went the more advanced route of doing a 2-pass render by encoding the surface geometry into a pre-render image and then using image processing techniques as outlined in the same book to extract the edges. It gets all of them except some internal concave surfaces, which are the hardest to detect. On the plus side, it supports transparent objects, variable line width and colour and transparent textures. The latter means that you would be able to do cartoon leaves for example. It has some aliasing issues to sort out so I probably won't release it with the script as I really want people to be able to experience Renderman sooner and have a chance to practise writing shaders. This experience is a good place to start if you want to one day add nodes to Blender's upcoming shader editor too because it will follow similar principles. Even if you don't use Renderman in the end, it will help you understand how renderers work and so it might help you control them better. You don't have to use Renderman for everything of course. It supports render passes and you can output arbitrary data to an image. This means that if you weren't happy with Blender's depth buffer output, you can export your scene to 3delight just to get a depth pass. It even supports 32-bits per channel (floating point output) and these work in Shake and probably other compositors like AE or Combustion. I modified the script quite a bit and I've probably broken some of the functionality with other renderers for the moment (although it's hard to tell since none of the renderers other than 3delight work on the platform I'm using) so it's really intended for use with 3delight only. Now don't cry about needing a license because you get a free one for non-commercial use and for most people that's fine. With this free license, you don't get watermarks on your images and there are no limitations to the features, you're just not ethically or legally supposed to use it to earn money. I have the script on my other computer so after I clean it up, I'll post it here for you to try. I won't say I'll post it this week because I said I would last week and didn't but it should be soon enough. In the mean time, Maya users direct your gaze here: http://www.3delight.com/
............................................
Pinky: Isn't life wonderful, Brain? Just think, we started out as lab mice forced to spend the whole day working our way through frustrating mazes that went absolutely nowhere. Now we get to do what humans do! |
||||
|
#1
|
||||
|
|
|
||||
|
I was checking out 3Delight this morning and reading the manual (which is surpisingly good), and it looks pretty nice as far as features go. Just needs a script for Blender now. Looking forward to your Blendeman modification!
|
||||
|
#2
|
|
||||
|
hey thanks for the post. unfortunately as it looks like the do not support hypershade. pixars plug ins as far as i know supports hypershade to visualy create shaders and compiles them on the fly when you hit render.
i wish one day the usage of those engiens would be easier. yafray and blender hit the limit very hard and quick when you use stretched proceduals to fake micro fine grooves to simulate brushed metal. what is the status of your script for blender? how far can u use "The tool" for shader creation? claas |
||||
|
#3
|
|
|||
|
Well,
if i understand well what it is said on the web site, the free license they give to you can also be used for commercial work. |
|||
|
#4
|
|
||||
|
I'm not sure about that... from the end user license agreement:
Quote:
I think it's weird that it doesn't support hypershade... kind of hard to push it on Maya users without it. |
||||
|
#5
|
|
||||
|
well hypershader is a good tool to create some basic shaders for non coders. but hand coded shaders are much more powerfull.
basicly all 3delgiht offers is just a scene exporter. claas |
||||
|
#6
|
|
||||
|
3delight can be used free for non commercial use but when you use it for commercial purpose you have to get a commercial lisence. quite simple.
in case things devllop more this way i might have to get one! |
||||
|
#7
|
|
|||
|
Well it is also written:
Quote:
|
|||
|
#8
|
|
||||
|
mh stange, looks like one render license is free even for commercial use?
makes sense. they dont produce an engine for a single computer. we used 3delight with yellowdog linux on small renderfarms. man that was fast |
||||
|
#9
|
|
||||
|
Quote:
However, this isn't as bad as it sounds. For example, in the toon shader, you just separate the components into functions. So you have a glossy function to deal with toon specular, a diffuse function for the colour banding and and an outline function for the edge. The main function calls all of these and puts together the final output. The level of programming knowledge required is just some basic C coding. The difficult part is understanding how computer graphics work but I think it's quite valuable to learn that. Decent shaders are really designed so that you don't need to change the code. One example is Pixar's uberlight, which simulates lots of effects like barndoors, volumetric effects etc all in one shader. Multiple materials like in Blender are actually not too hard either. For example, I tested out making a stool with a red seat and blue base. You can just use the UV editor and LSCM and lay out the top and bottom in the UV editor. Then in the shader, you can just say if (s<0.5) { Ci = color "rgb" (0,0,1); } else { Ci = color "rgb" (1,0,0);} s and t are texture co-ordinates where 0,0 is to the left of the uv editor window, 1,1 is to the right. Another thing I could have done was to assign custom primitive variables for the multiple materials but since Blender only has 16, I decided to leave that one for the moment. I might look at that when the node-based editor comes out. Quote:
............................................
Pinky: Isn't life wonderful, Brain? Just think, we started out as lab mice forced to spend the whole day working our way through frustrating mazes that went absolutely nowhere. Now we get to do what humans do! |
||||
|
#10
|
|
||||
|
uv mapping and a basic material support would be in deed more than ok
in my opinion. |
||||
|
#11
|
|
||||
|
Quote:
I also changed a tiny bit of the code so that when rendering an animation, it doesn't keep all the rendered shadow maps for every frame. For a basic map, it was taking up nearly 1MB per lamp per frame. So 500 shadowmap lamps over 500 frames = 250GB. Now it would just use 500MB in that situation. The only thing I don't like about the script is the performance. For doing stills, it might be ok but animations take ages to export. I don't think it's the Python file export that's the bottleneck either but it seems like it's when the code iterates through Blender's objects. 25,000 verts on one object seem to export faster than a total of 1,000 spread over 50 objects. I tried to avoid that by writing multiple RIB files sort of simultaneously but it got messy. For example, the code goes for all objects in the scene, write all the frames and all the objects. But on top of that, it goes for all lamps in the scene, if they are buffered, then for all objects in the scene write the objects. It does that for the lamps every frame. Because of that, raytraced lamps actually export much faster, although render slower. I also want to link attribute values to IPOs. That was partly the reason behind requesting arbitrary IPOs in Blender, though I think it would be good in general anyway. That way, I could animate shader input values. I might just have some sort of naming convention and use the IPOs of specified empties. The only thing I'd like to add before uploading the script is the new feature in 3delight 5 of using objects as area lights so when that's done, I'll get it out. Oh, it also supports displacement maps too. I was actually looking to get a way to make an automatic bevel displacement shader. This way, you don't ever need to add geometry to your object to bevel the edges and you can change the bevel amount as you please. The only trouble is that Renderman addresses the default UV parameter space and this is defined across each face so you end up with a Rubik's cube style effect. Custom UV parameterization (that's what you do when texture mapping) was suggested so that I could define the UVs to go over certain faces but I have an idea that using vertex colouring might be easier. Vertex colouring also works. Does anyone know how to delete vertex colours in Blender btw?
............................................
Pinky: Isn't life wonderful, Brain? Just think, we started out as lab mice forced to spend the whole day working our way through frustrating mazes that went absolutely nowhere. Now we get to do what humans do! |
||||
|
#12
|
|
|||
|
I just can't wait that script longer
|
|||
|
#13
|
|
|||
|
Currently I have created a forum to aid in the developmet of Blender to Renderman export functions - be in scripts or actual plugins (or for that matter custom Blender distributions)... Grant you this site is very new and in all has very few posts but as I said it's new. Whether it's 3Delight, Aqsis or Pixie - as long as it's Renderman compliant - we want to talk about it and work with it.
http://www.bestfreeforums.com/forums...rtorender.html Hope to see you there. |
|||
|
#14
|
|
||||
|
Quote:
Sorry about the wait but I have a lot of work on at the moment. The script is being updated but I'd rather release a working version than have everyone use it and then say it doesn't work. I'm not saying that won't happen anyway of course .Things that have improved since last time: I got round the buffered shadows overhead so the script exports scenes much faster than before (as much as ten times faster). I'm sure I can get it faster yet. The area light feature works for 3delight 5. Some other minor stuff fixed. I've been concentrating too much on getting some useful shaders working but so far have had some problems. For the toon shader, I used the method of pre-rendering scene data to a g-buffer (essentially just an image pass that stores object information) then using Saito's edge detection with normalization but it isn't working properly and it is too slow. For the automatic bevel displacement shader, I came up with a way to do it using phong interpolated vertex normals compared to geometric normals and it works to an extent but it doesn't like abnormal uv parameterization. So, I'm back to cleaning the script up and since I will be using it next week to render some scenes, given my project deadline is about 2 weeks away, chances are the script will be ready this weekend.
............................................
Pinky: Isn't life wonderful, Brain? Just think, we started out as lab mice forced to spend the whole day working our way through frustrating mazes that went absolutely nowhere. Now we get to do what humans do! |
||||
|
#15
|
|
|||
|
Man u rule
|
|||
|
#16
|
|
||||
|
OK, I've come across a couple of problems. I also decided to do the shader input a bit differently but I've got that working ok. It allows more flexibility for changing shader values. I also fixed one of the biggest slowdowns in the script. Small scenes export practically instantly. I stress tested it a bit and it exported 300,000 verts with 1000 buffered lights in 55 seconds. Even after one of the major speedups, the old script took 5 minutes. There remains a slight overhead but I think that's down to Blender. I think it might be when it calls getrawfromobject in the NMesh class. I tried using the Mesh class as it is supposed to be faster but I couldn't get it to work yet.
The problems include that I wasn't able to test it on Windows and the Renderman output isn't quite right in terms of the projection relative to Blender i.e they aren't aligned properly. The misaligned output doesn't matter much if you just use Renderman but I'd like to fix it eventually for a couple of reasons. The main one being you'd be able to mix Blender output with Renderman passes. To get the Windows testing done, tonight I thought I would try running Blender on my Windows emulator. I never actually thought that would work since Blender is a 3D program and practically nothing 3D works in VirtualPC because it uses something like 4MB-16MB of emulated VRam. But it installed no problem and launched fine with the console and even the script ran without manually installing Python. But the script produced a couple of errors under Windows so once I fix those, it should be ok to use. Linux will likely work if it works in OS X. I should note, this release will be more of an experimenting release. There are still a lot of features that could be implemented and it's finding intuitive ways of linking the controls Blender has.
............................................
Pinky: Isn't life wonderful, Brain? Just think, we started out as lab mice forced to spend the whole day working our way through frustrating mazes that went absolutely nowhere. Now we get to do what humans do! |
||||
|
#17
|
|
||||
|
great work!
|
||||
|
#18
|
|
||||
|
yeah, great work!
can't wait to experiment.. my workflow is using more and more displacement.. so I'm on the edge of my seat... much suspense this script will be a great contribution to the community
............................................
-Michael Hatch- |
||||
|
#19
|
|
||||
|
displacements are so great, ah for metal surfaces ahahahah
so fine details... |
||||
|
#20
|
![]() |
| Bookmarks |
| Thread Tools | |
|
|