sidebar features
sidebar content

Go Back   Blender Artists Forums > General Forums > News & Discussion

Reply
 
Thread Tools
osxrules's Avatar
osxrules osxrules is offline
Member
 
Join Date: Jun 2004
Location: Scotland
Posts: 3,944
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   Old 19-Feb-06, 17:20   
Reply With Quote


etr9j's Avatar
etr9j etr9j is offline
Member
 
Join Date: Jan 2006
Location: Maryland/DC Area, USA
Posts: 71
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   Old 03-Mar-06, 16:54   
Reply With Quote
cekuhnen's Avatar
cekuhnen cekuhnen is offline
Member
 
Join Date: Mar 2003
Location: Grand Rapids, Michigan, USA
Posts: 5,450
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   Old 03-Mar-06, 17:12   
Reply With Quote
zoulou zoulou is offline
Member
 
Join Date: Aug 2003
Posts: 35
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   Old 03-Mar-06, 19:28   
Reply With Quote
etr9j's Avatar
etr9j etr9j is offline
Member
 
Join Date: Jan 2006
Location: Maryland/DC Area, USA
Posts: 71
I'm not sure about that... from the end user license agreement:

Quote:
The 3Delight Team hereby grants you a revocable, non-exclusive, non-transferable license to copy the Software onto a single computer for your personal use
I think personal use translates to non-commerical use. Of course, I'm never sure... I think that could be spelled out better.


I think it's weird that it doesn't support hypershade... kind of hard to push it on Maya users without it.
#5   Old 03-Mar-06, 19:51   
Reply With Quote
cekuhnen's Avatar
cekuhnen cekuhnen is offline
Member
 
Join Date: Mar 2003
Location: Grand Rapids, Michigan, USA
Posts: 5,450
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   Old 03-Mar-06, 20:42   
Reply With Quote
cekuhnen's Avatar
cekuhnen cekuhnen is offline
Member
 
Join Date: Mar 2003
Location: Grand Rapids, Michigan, USA
Posts: 5,450
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   Old 03-Mar-06, 20:43   
Reply With Quote
zoulou zoulou is offline
Member
 
Join Date: Aug 2003
Posts: 35
Well it is also written:

Quote:
To remove the watermark and have the permission to use the software for commercial work, a user shall ask for a license through our special form at http://www.3delight.com/Licensing/Licensing.htm. All licenses are "floating" licenses (they can be run from any computer on a network) and cost 1000$US each. The first license is free and doesn't include support.
#8   Old 03-Mar-06, 21:54   
Reply With Quote
cekuhnen's Avatar
cekuhnen cekuhnen is offline
Member
 
Join Date: Mar 2003
Location: Grand Rapids, Michigan, USA
Posts: 5,450
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   Old 03-Mar-06, 23:09   
Reply With Quote
osxrules's Avatar
osxrules osxrules is offline
Member
 
Join Date: Jun 2004
Location: Scotland
Posts: 3,944
Quote:
Originally Posted by cekuhnen
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.
Yes, that is one of the issues with Renderman, though in some ways, it is easier. Each object can only have one surface shader attached to it. All the code you need is stored in one file. Now people may wonder how you do multiple shaders, well the on-the-fly compiling is one way and is done in commercial solutions like SLIM. Unfortunately, it would be very difficult to do something like that with the script so it's all manual. This means that for every surface, you have to manually paste code for each effect.

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:
Originally Posted by cekuhnen
what is the status of your script for blender? how far can u use "The tool" for shader creation?
In the long run, that would probably be a good idea. I had sort of decided not to automate the shader generation because for one thing it would be very difficult - no doubt why the 3delight team left it for the moment. However, I guess if I was able to cover the available nodes in Blender, that would suffice for most people. Again though, I think this will be better with the node editor since the Python API will change again.
............................................
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   Old 05-Mar-06, 12:22   
Reply With Quote
cekuhnen's Avatar
cekuhnen cekuhnen is offline
Member
 
Join Date: Mar 2003
Location: Grand Rapids, Michigan, USA
Posts: 5,450
uv mapping and a basic material support would be in deed more than ok
in my opinion.
#11   Old 05-Mar-06, 16:45   
Reply With Quote
osxrules's Avatar
osxrules osxrules is offline
Member
 
Join Date: Jun 2004
Location: Scotland
Posts: 3,944
Quote:
Originally Posted by cekuhnen
uv mapping and a basic material support would be in deed more than ok in my opinion.
OK, that's already working. For some reason, 3delight hung up while mapping tiffs on certain objects but the native texture format worked so I want to make sure it uses tdlmake on the fly.

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   Old 05-Mar-06, 21:52   
Reply With Quote
SreckoMicic SreckoMicic is offline
Member
 
Join Date: Mar 2006
Posts: 49
I just can't wait that script longer
#13   Old 16-Mar-06, 13:43   
Reply With Quote
animate78 animate78 is offline
Member
 
Join Date: Mar 2006
Posts: 68
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   Old 17-Mar-06, 05:21   
Reply With Quote
osxrules's Avatar
osxrules osxrules is offline
Member
 
Join Date: Jun 2004
Location: Scotland
Posts: 3,944
Quote:
Originally Posted by SreckoMicic
I just can't wait that script longer
Bahaha, I wondered who would crack first.

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   Old 17-Mar-06, 18:54   
Reply With Quote
SreckoMicic SreckoMicic is offline
Member
 
Join Date: Mar 2006
Posts: 49
Man u rule
#16   Old 17-Mar-06, 21:39   
Reply With Quote
osxrules's Avatar
osxrules osxrules is offline
Member
 
Join Date: Jun 2004
Location: Scotland
Posts: 3,944
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   Old 21-Mar-06, 00:30   
Reply With Quote
cekuhnen's Avatar
cekuhnen cekuhnen is offline
Member
 
Join Date: Mar 2003
Location: Grand Rapids, Michigan, USA
Posts: 5,450
great work!
#18   Old 21-Mar-06, 01:05   
Reply With Quote
HatchFactry's Avatar
HatchFactry HatchFactry is offline
Member
 
Join Date: May 2005
Location: Selma, CA, USA
Posts: 147
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   Old 21-Mar-06, 04:00   
Reply With Quote
cekuhnen's Avatar
cekuhnen cekuhnen is offline
Member
 
Join Date: Mar 2003
Location: Grand Rapids, Michigan, USA
Posts: 5,450
displacements are so great, ah for metal surfaces ahahahah
so fine details...
#20   Old 21-Mar-06, 04:43   
Reply With Quote
Reply

Bookmarks

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Forum Jump


All times are GMT. The time now is 11:23.


Powered by vBulletin® Version 3.7.3
Copyright ©2000 - 2010, Jelsoft Enterprises Ltd.
Logo and website design copyright © 2006 by froodee design bureau. All rights reserved.
Other Blender Sites
new icon Blender Homepage »
The official Blender homepage
new icon BlenderNation »
Fresh Blender News, Every Day
new icon Blenderart Magazine »
Blender articles, tutorials and images.
Blender Headlines
Featured Artwork
Short animation: Barrel by Phlopper
Woolly mammoth by sebastian_k
Photorealistic classic furniture by eMirage
Social BlenderArtists