marin Posted March 3, 2007 Share Posted March 3, 2007 Hello all I am trying to make some geometry (surface or points) to cast/emit some light. Came across Ben Schrijvers SopLight that might to the trick, but I cant get my head around the Sop. Is there anyone who can show me with a sample .hip file how it should be used? (I have compiled the vfl and installed the otl, its how to use it I am struggling with) or there might be another way to achieve the same effect? regards marin Quote Link to comment Share on other sites More sharing options...
marin Posted March 5, 2007 Author Share Posted March 5, 2007 By the way, when I compile the VEX code using: vcc -l soplights.otl soplights.vfl and install the otl, the Soplight operator has no inputs just an output. So I might be doing something wrong there... (using apprentice Houdini 8.1.xxx) /marin Quote Link to comment Share on other sites More sharing options...
beeemtee Posted March 6, 2007 Share Posted March 6, 2007 hi, i'm achieving similar results with irradiance. it's a kind of a hack, so it's only good, if you would use full irradiance anyway. otherwise its prohibitively slower than a SOPlight. or at least i think.. i never tried that.. all you have to do is setting up a normal full irradience light, and to assign a constant shader to your light emitting object and set it's color to an overdriven value, for example 10. while it gives a nice result, it's painfully slow, so if you find a faster solution i would be very excited. cheers bmt Quote Link to comment Share on other sites More sharing options...
beeemtee Posted March 6, 2007 Share Posted March 6, 2007 yep, and here is another idea, which i have not tried yet: to instanciate lights to the points of your emitting surface. it could be much faster than irradiance. i would put spotlights with a 180 degree cone in the directions of the surface normals. cheers bmt Quote Link to comment Share on other sites More sharing options...
marin Posted March 7, 2007 Author Share Posted March 7, 2007 Hi, thanks for the reply bmt. I got a solution for the Soplight source code from BenS (Thanks), I have not tried it yet: If you add the following lines somewhere close to the other lines starting with #pragma then it should give the node 2 inputs. #pragma opmininputs 2 #pragma opmaxinputs 2 Quote Link to comment Share on other sites More sharing options...
beeemtee Posted March 7, 2007 Share Posted March 7, 2007 i had a minute to experiment with this, here are the results: Global illumination solution: Instanced lights solution: Conclusions: GI is more accurate, support much more features than what the original problem needs, much much slower, at least in the above example. Instancing is FASTER (if only noise level is the measure of quality. i mean you need a lots of light to be close to optical correctness), flexible (you have more parameters to tune), slower and more complicated to set up, and manage. the .hips: geoLight_globill.hipnc geoLight_lightinstances.hipnc sorry i'm an idiot, so the two camera positions in the two scenes are not equal.. and i'm in a rush.. cheers bmt Quote Link to comment Share on other sites More sharing options...
andrewc Posted March 7, 2007 Share Posted March 7, 2007 A couble of notes - you might be able to get a more accurate result with the instancing solution by adding a phantom object to the scene representing the blocking torus. For the GI image, you should also try using the irradiance cache (specific tab on the mantra ROP) to help speed up the GI calculations. One problem with using small, bright objects for GI is that the sampling algorithm will not converge very quickly - which shows up as noise in your image. Andrew Quote Link to comment Share on other sites More sharing options...
beeemtee Posted March 7, 2007 Share Posted March 7, 2007 A couble of notes - you might be able to get a more accurate result with the instancing solution by adding a phantom object to the scene representing the blocking torus. For the GI image, you should also try using the irradiance cache (specific tab on the mantra ROP) to help speed up the GI calculations. One problem with using small, bright objects for GI is that the sampling algorithm will not converge very quickly - which shows up as noise in your image.Andrew the above examples only have the most trivial optimisations, so there is no low-res phantom placeholder for the nurbs torus, but irradiance caching is turned on indeed. perceptable noise levels drop when there are other lights in the scene contributing to the diffuse channel. another way of optimizing render time is to use polygons instead of curved surfaces whenever it's possibble, both for the emitting and the lit surfaces. but it WILL be slow. the optimum solution would be a shader which acts like an arealight but with whatever geometry it is attached to. that would be optically correct (in the sence of lighting and shadows, but wouldn't support indirect illumination and color bleeding) and would render much faster because with full irradiance you sample your whole scene not just your emitting objects (which situation causes the noise). unfortunately at the moment i'm too dumm to create such a shader, but in my estimates it couldn't be too hard for someone with a deeper understanding of VEX and the underlying render architecture. you can also try instancing area lights.. if i'm rigtht that's not the optimum solution but close to that.. cheers bmt Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.