AWE Shading Kit for DAZ Studio and 3delight

1246716

Comments

  • Mustakettu85Mustakettu85 Posts: 2,933

    Are AoA shaders incompatible with AWE?

    Only with the best part of the kit - the pathtraced area lights.

    I'm not thrilled with the results I've been getting with AWE skin (not that I've had a lot of time to practice)

    Have you tried my recipe for the aweStarter scene?

    https://www.daz3d.com/forums/discussion/comment/4005391/#Comment_4005391

    Unlike AoA, aweSurface does not carry the legacy of shader mixer bugs that eat render time, if anything. Learning to customise aweSurface will save you a lot of time in the end.

    ...when you use either the Standard Example or Point Cloud 3DL scripted render engines...

    Please don't.

    Standard Example is just that, an example for developers; it's pretty much useless for any production work.

    The Point cloud script invokes totally different algorithms, so if you don't know how to actually make use of point clouds, you won't gain anything useful from them.

    Moreover, point clouds are pretty much obsolete technology; path-traced GI with diffuse ray caching (the latter only available via the scripts coming with the aweSurface) and raytraced SSS are faster to set up and at least as fast, or faster, to render.

  • Mustakettu85Mustakettu85 Posts: 2,933
    Ok no biggie. I use GIMP for bloom, what I do is make a b&w layer, crank up contrast and intensity until I only see the hotspots, then apply the artistic glow filter and/or gaussian blur, then use some of the layersettings like soft light, screen or whatever;) Tks for enlightening me once moresmiley

    You're welcome =) So would you happen to know if that "artistic glow filter" has an adjustable luminance cutoff? Or it's a remainder from the days when GIMP did not support HDR images?

    I haven't upgraded for a long time, my version doesn't support HDR. IIRC there are three sliders for the filter, radius, intensity and sharpness, no luminance cutoff.

    Ah okay, thanks anyway. I'll need to keep on looking =D

    So what about procedural shaders? Possible?

    Like which sort of procedural shaders?

  • Sven DullahSven Dullah Posts: 7,621
    Ok no biggie. I use GIMP for bloom, what I do is make a b&w layer, crank up contrast and intensity until I only see the hotspots, then apply the artistic glow filter and/or gaussian blur, then use some of the layersettings like soft light, screen or whatever;) Tks for enlightening me once moresmiley

    You're welcome =) So would you happen to know if that "artistic glow filter" has an adjustable luminance cutoff? Or it's a remainder from the days when GIMP did not support HDR images?

    I haven't upgraded for a long time, my version doesn't support HDR. IIRC there are three sliders for the filter, radius, intensity and sharpness, no luminance cutoff.

    Ah okay, thanks anyway. I'll need to keep on looking =D

    So what about procedural shaders? Possible?

    Like which sort of procedural shaders?

    Well... marble, rock, grass, fractal patterns... to name a few;)

  • khorneV2khorneV2 Posts: 147
    khorneV2 said:
    Creating RIB files is very stable with the standard 3delight (Vanilla) renderer in Daz Studio. I managed to copy the settings in the generated rib and AWE surface worked even if I don't know if all the settings were correct.

    So, i wonder if it is possible to have a script to modify the classic rib files to use path-tracing and so. This will avoid the DS Bug....

    You mean full raytracing, right? Without being limited to progressive rendering? Because pathtracing happens with aweArea lights and aweSurface regardless of whether you're using the scripted renderer to call the raytracer with full options or the vanilla tab with all its limits via "progressive mode".

    Any script that would do that for you would be a Windows sorta script (Python?), which isn't something that I do. But if you have a good text editor (Notepad++ or something better), it should be able to help you automate text replacements, via its own script engine or some other interface.

    Let's look at a header (up to WorldBegin) generated by the vanilla tab:

    ##RenderMan RIB-Structure 1.0##Creator 3Delight 12.0.27 win64 (Oct  6 2015, 9cc783) "Suspiria"##CreationDate Thu Oct 18 20:47:28 2018Option "searchpath" "string shader" [ "C:/Users/Forever/AppData/Roaming/DAZ 3D/Studio4 Public Build/temp/shaders;C:/Users/Forever/AppData/Roaming/DAZ 3D/Studio4 Public Build/shaders;C:/Program Files/DAZ 3D/DAZStudio4 Public Build/shaders;&" ] Option "render" "bucketorder" [ "spiral" ] Option "limits" "bucketsize" [ 16 16 ] Option "render" "integer standardatmosphere" [ 0 ] Option "trace" "maxdepth" [ 2 ] Attribute "trace" "maxdiffusedepth" [ 2 ] Attribute "trace" "maxspeculardepth" [ 2 ] Attribute "trace" "bias" [ 0.01 ] Hider "raytrace"   "int progressive" [ 1 ] PixelFilter "box" 1 1 Exposure 1 2.2 ShadingRate 1 PixelSamples 8 8 Sides 2 Display "render.tiff" "file" "rgba" Imager "" Format 442 619 1 Projection "perspective"   "fov" [ 30.957276 ] ScreenWindow -0.71405495 0.71405495 -1 1 Clipping 5 4e3 Identity Scale 1 1 -1 Rotate 26.030424 0.5311948 -0.84093445 -0.10325368 Translate -299.1719 -324.1207 -740.4766 

    Obviously your search paths are going to be different :)

    The exact order of commands is not really relevant, but if a command is duplicated, the one coming last supercedes the first one.

    What you generally want to retain are the following lines:

    Display "render.tiff" "file" "rgba" // Path to rendered file and its typeImager ""  // Supposing you were using any; if this is empty, as here, disregard itFormat 442 619 1  // This and the following lines describe your camera positionProjection "perspective"   "fov" [ 30.957276 ] ScreenWindow -0.71405495 0.71405495 -1 1 Clipping 5 4e3 Identity Scale 1 1 -1 Rotate 26.030424 0.5311948 -0.84093445 -0.10325368 Translate -299.1719 -324.1207 -740.4766 

    The scripted method generates something like that:

    ##RenderMan RIB-Structure 1.0##Creator 3Delight 12.0.27 win64 (Oct  6 2015, 9cc783) "Suspiria"##CreationDate Wed Jul 25 08:37:34 2018ErrorHandler "print" Hider "raytrace"   "integer progressive" [ 0 ]   "float aperture[4]" [ 6 60 1 1 ] ShadingInterpolation "smooth" Option "render" "integer standardatmosphere" [ 0 ] Option "trace" "int diffuseraycache" [ 1 ] PixelFilter "gaussian" 2 2 Option "searchpath" "string shader" [ "C:/Users/Forever/AppData/Roaming/DAZ 3D/Studio4/temp/shaders;C:/Users/Forever/AppData/Roaming/DAZ 3D/Studio4/shaders;C:/Program Files/DAZ 3D/DAZStudio4/shaders;&" ] Option "render" "string bucketorder" [ "zigzag" ] Option "limits" "integer bucketsize[2]" [ 64 64 ] Option "trace" "integer maxdepth" [ 10 ] Attribute "trace" "integer maxdiffusedepth" [ 2 ] Attribute "trace" "integer maxspeculardepth" [ 3 ] Exposure 1 2.2 PixelSamples 10 10 Sides 2 Format 600 600 1 Projection "perspective"   "fov" [ 30.957276 ] ScreenWindow -1 1 -1 1 Clipping 5 4e3 Identity Scale 1 1 -1 Rotate 26.030426 0.5311947 -0.8409345 -0.10325368 Translate -22.84611 -195.36575 -56.847825 Display "C:/Users/Forever/Documents/!_3D models/!_RSL RIB/testneutral.rib.tif" "file" "rgba"   "int associatealpha" [ 0 ] 

    You can see that the path to rendered file comes after the camera commands here, which is basically the only thing you need to look out for when swapping headers.

    Trace depths for various ray types, pixel samples etc - I think it's clear where they are and hence where you can change their values; if I'm wrong, then just ask and I'll point you to them.

    Ok thanks a lot ! This workaround work just fine for me !!laugh

  • wowiewowie Posts: 2,029

    So I'm just a bit curious, what's the reason normal maps are not supported?

    My coding skills. :D

    So what about procedural shaders? Possible?

    Quite possible. Disney/Pixar tends relies heavily on procedural shaders without having to rely on UVs.

    Here's a very nice video exploring what you can do with procedural bitmaps in OSL. Much of it can actually be quickly ported to RSL (Renderman Shading Language).

    With DS, the major issue is that you need access to source code and a good understanding of RSL to do it in Shader Builder. It's possible to do it in Shader Mixer, but Shader Mixer has lots of restrictions and lack support support for newer 3delight features/shadeops. Technically, it should be possible to import Shader Builder code into Shader Mixer, but I've never been successful doing it. If anyone have done it or did it, please let me know how to do it properly.

    An alternative would be to build the procedural shader in Shader Mixer/Builder, then bake the result into textures. Load that into the final shader of choice. A third option, I could bolt that to AWE Surface, but that makes the shader bigger than it already is and it will not be as flexible since the parameter will always be fixed (you can't add/remove stuff).

  • Sven DullahSven Dullah Posts: 7,621
    edited October 2018
    wowie said:

    So I'm just a bit curious, what's the reason normal maps are not supported?

    My coding skills. :D

    So what about procedural shaders? Possible?

    Quite possible. Disney/Pixar tends relies heavily on procedural shaders without having to rely on UVs.

    Here's a very nice video exploring what you can do with procedural bitmaps in OSL. Much of it can actually be quickly ported to RSL (Renderman Shading Language).

    With DS, the major issue is that you need access to source code and a good understanding of RSL to do it in Shader Builder. It's possible to do it in Shader Mixer, but Shader Mixer has lots of restrictions and lack support support for newer 3delight features/shadeops. Technically, it should be possible to import Shader Builder code into Shader Mixer, but I've never been successful doing it. If anyone have done it or did it, please let me know how to do it properly.

    An alternative would be to build the procedural shader in Shader Mixer/Builder, then bake the result into textures. Load that into the final shader of choice. A third option, I could bolt that to AWE Surface, but that makes the shader bigger than it already is and it will not be as flexible since the parameter will always be fixed (you can't add/remove stuff).

    Ok tks wowie! Good to know it's possible;)

    Look, I love your stuff and I have the deepest respect for your skills and ambition, this is the best thing that has happened to me for a loooong time, believe me! And I know you're working on an update. I just have to let out some internal pressure LOL. There is a serious glitch somewhere. It may be DS, it may be your shaders, I don't know. I've been learning this stuff now for a couple of weeks and it's been pleasure and pain. When it works it's beautiful. Everytime I set up a scene I spend hours and even days trying to get things that are supposed to work ..well to work. You have been very supportive and given me lots of good advice and I very much appreciate that! You've seen some examples I have posted. Here is yet another one. I've spent 20h now to work on this, starting with converting every surface, doing testrenders, finding camera angles and so on. It's a spaceship model with complete interior (Vanguard). I did this draft render of the interior and was very happy with it.

    image

    So I added my characters, did the posing/positioning and testrendered, basically it looked good but I wanted to add a fill light, so I loaded an emissive plane to make a rim. Nada! Tried the Omnifreaker light disc with your arealight shader. Nada! Created a primitive plane and applied the area light shader. It decided to cast light only on the characters, nothing else whatever I did. The light panels in the interior render work. I took two screenshots of the setup, one with the emitter right next to the characters, the other with the emitter on the outside. Makes no difference.

    image

    image

    I could possibly get it to work if I applied the DS vanilla shader to everything in the scene, then apply the awe base shader to everything and make all adjustment one more time.  That's how I've got around to make things work. There are hundereds of material zones and I'm very very tired. So I will take a break and do something else, sleep, walk the dogfrown Sorry if I sound a bit harsh but I just had to say this. I just want to know what the ... is going on here. Is it me, is it my Mac, DS, something else? Ok rant over, and over and outsmiley

    Sven

    Update: I just had to try, added a standard DS spot and it worked, so I'll use that one for now, just wanted you to know;) Goodnight!

    VANGUARD awe.png
    1280 x 720 - 2M
    arealight bug.png
    1194 x 914 - 863K
    arealight bug2.png
    1221 x 926 - 940K
    Post edited by Sven Dullah on
  • Oso3DOso3D Posts: 15,009

    I've debated doing some procedural shaders for 3DL, but I'm always a bit overwhelmed with figuring out which stuff in 3DL to make it compatible with. (or even HOW to make it compatible with stuff)

     

  • Mustakettu85Mustakettu85 Posts: 2,933
    Oso3D said:

     (or even HOW to make it compatible with stuff)

    Well, you would need to code a full surface shader anyway; why bother with compatibility? ;D

    Jokes aside, this is only the first in a line of problems. Wowie explained this one already.

    And then there is antialiasing that _all_ textures, mapped or procedural, require in each and every renderer out there, real-time or offline.

    With maps, most texture-reading operators have antialiasing hard-coded into them by the renderer developers.

    With procedural texturing, you're always on your own. Which is a mathematically challenging issue.

    What the hell is antialiasing in terms of textures, some may ask... Here's some reading material on this, there's no way I'd be able to explain it better than Mr Gritz: http://hradec.com/ebooks/CGI/RPS_13.5/prman_technical_rendering/AppNotes/appnote.25.html

    So yeah, in theory procedural shading is awesome. When you have someone else implementing the code =)

     

  • Sven DullahSven Dullah Posts: 7,621
    Oso3D said:

    I've debated doing some procedural shaders for 3DL, but I'm always a bit overwhelmed with figuring out which stuff in 3DL to make it compatible with. (or even HOW to make it compatible with stuff)

     

    I know you can do it, go man, GO!

  • Sven DullahSven Dullah Posts: 7,621
    edited October 2018

    So after a good night's sleep I had another go at the Vanguard. Saved as a materials preset, applied the DS default shader, applied my preset, made no difference. Again applied the DS default and applied the awe base shader, here is the result... the black square is teh awe emitter plane 1, intensity scale cranked up all the way...

    image

    I also tried to enable the "use face forward" for all surfaces, no cigar:(

    VANGUARD baseshader.png
    1000 x 563 - 561K
    Post edited by Sven Dullah on
  • Sven DullahSven Dullah Posts: 7,621
    edited October 2018

    Ok I finally might be onto something, but I cannot explain what's happening.

    Deleted the plane tested with a primitive sphere, didn't work. Tried with the Omnifreaker light disc again with the awe area shader, didn't work. DELETED the Vanguard, loaded the original set from the poser library, applied my mat preset and BAM:

    image

    I thought wow nice and moved the disc to the edge of the HDRI and made necessary adjustments to light intensity... and it stopped working. So I deleted Vanguard again and moved the disc just next to the characters floating in space and it wouldn't light them. So I applied the DS def shader to the disc and re applied the area shader, started working. Moved the disc to the edge of the known universe and made adjustments and it worked on the characters. Reloaded the original poser Vanguard, applied my mat preset:

    image

    So obviously nothing wrong with your shaders, wowie, and I knew it all the time. It must be a DS .duf sort of issue, if I may be so bald to take a guess. Well this is what I have so far, testing continues...

    Sven

    VANGUARD ok.png
    1000 x 563 - 658K
    VANGUARD ok2.png
    1000 x 563 - 680K
    Post edited by Sven Dullah on
  • Sven DullahSven Dullah Posts: 7,621

    ... and a render...

  • wowiewowie Posts: 2,029
    So I added my characters, did the posing/positioning and testrendered, basically it looked good but I wanted to add a fill light, so I loaded an emissive plane to make a rim. Nada! Tried the Omnifreaker light disc with your arealight shader. Nada! Created a primitive plane and applied the area light shader. It decided to cast light only on the characters, nothing else whatever I did. The light panels in the interior render work. I took two screenshots of the setup, one with the emitter right next to the characters, the other with the emitter on the outside. Makes no difference.
    So obviously nothing wrong with your shaders, wowie, and I knew it all the time. It must be a DS .duf sort of issue, if I may be so bald to take a guess. Well this is what I have so far, testing continues...

    Sven

    Don't worry. I'd love to find out what's going on also, but I simply can't reproduce some of the stuff in DS 4.7. I'm guessing it's mostly DS bugs. Maybe I could email you with a list of props/scenes I have and if you don't mind testing, we could really sort what's going on and file a bug report. Even if it's not something inherent with any of my shaders.

  • Sven DullahSven Dullah Posts: 7,621
    wowie said:
    So I added my characters, did the posing/positioning and testrendered, basically it looked good but I wanted to add a fill light, so I loaded an emissive plane to make a rim. Nada! Tried the Omnifreaker light disc with your arealight shader. Nada! Created a primitive plane and applied the area light shader. It decided to cast light only on the characters, nothing else whatever I did. The light panels in the interior render work. I took two screenshots of the setup, one with the emitter right next to the characters, the other with the emitter on the outside. Makes no difference.
    So obviously nothing wrong with your shaders, wowie, and I knew it all the time. It must be a DS .duf sort of issue, if I may be so bald to take a guess. Well this is what I have so far, testing continues...

    Sven

    Don't worry. I'd love to find out what's going on also, but I simply can't reproduce some of the stuff in DS 4.7. I'm guessing it's mostly DS bugs. Maybe I could email you with a list of props/scenes I have and if you don't mind testing, we could really sort what's going on and file a bug report. Even if it's not something inherent with any of my shaders.

    Sweet! I'd be more than happy to do what I can to sort it out! Hope we can make ends meet:)

  • wowiewowie Posts: 2,029

    Sweet! I'd be more than happy to do what I can to sort it out! Hope we can make ends meet:)

    Already sent you a PM with a list of things I have.

    I've also looked at your recent render with the room and I think I have a better grasp of what's happening with that particular model.

  • Sven DullahSven Dullah Posts: 7,621
    wowie said:

    Sweet! I'd be more than happy to do what I can to sort it out! Hope we can make ends meet:)

    Already sent you a PM with a list of things I have.

    I've also looked at your recent render with the room and I think I have a better grasp of what's happening with that particular model.

    Thank you! I'll look into it;)

  • khorneV2khorneV2 Posts: 147

    Hi,

    II used a AOA ambient to "bypass" dark shaders renders. Is there a better workaround ?

    regards

  • Sven DullahSven Dullah Posts: 7,621
    edited October 2018
    khorneV2 said:

    Hi,

    II used a AOA ambient to "bypass" dark shaders renders. Is there a better workaround ?

    regards

    Yup, select the black area with the surface selection tool, go to the surface pane and scroll down till you see the "use face forward". Enable it for the problematic dark spots. It forces normals to always face the camera.

    More on this in here: https://www.daz3d.com/forums/discussion/284366/the-official-awesurface-test-track/p4

    Post edited by Sven Dullah on
  • Mustakettu85Mustakettu85 Posts: 2,933
    khorneV2 said:

    Hi,

    II used a AOA ambient to "bypass" dark shaders renders. Is there a better workaround ?

    regards

    Or - if you mean not 100% black spots but just dark scenes overall - the aweEnvironment light has global exposure controls.

  • wowiewowie Posts: 2,029
    khorneV2 said:

    Hi,

    II used a AOA ambient to "bypass" dark shaders renders. Is there a better workaround ?

    Hmm, maybe use a plane with camera visibility off to get more 'bounce' fill? Here's a very nice tutorial about lighting a scene.

    It's for a different renderer, but the workflow should be similar.

     

  • khorneV2khorneV2 Posts: 147

    ok thanks a lot, i will try this one !laugh

  • khorneV2khorneV2 Posts: 147

    ahem, i was wrong, it is not a AWE surface problem but using other shader (EX AOA grass) with AWE scripted renderer optionssad

  • Sven DullahSven Dullah Posts: 7,621
    edited October 2018
    khorneV2 said:

    ahem, i was wrong, it is not a AWE surface problem but using other shader (EX AOA grass) with AWE scripted renderer optionssad

    smiley I've found that when converting more complex scenes, best way not to miss anything is to start by selecting all and apply the awe base shader, then start adjusting things;) So if I see totally black areas when rendering, first thing I check is what shader is being used, if it is the aweSurface I check the "use face forward"and do a spotrender.

    Post edited by Sven Dullah on
  • RAMWolffRAMWolff Posts: 10,212

    Strange but still going to ask.  What if I were to release settings based on AWE shaders for a character but the end user didn't have AWE installed?  Would the 3Delight engine just ignore what wasn't there or would it error out?? 

  • Mustakettu85Mustakettu85 Posts: 2,933
    RAMWolff said:

    Strange but still going to ask.  What if I were to release settings based on AWE shaders for a character but the end user didn't have AWE installed?  Would the 3Delight engine just ignore what wasn't there or would it error out?? 

    It would render but it would look all white or black, since DS substitutes a very basic shader for those it cannot find.

    Since the base aweSurface is free, you could just provide a link in your documentation.

  • RAMWolffRAMWolff Posts: 10,212

    Oh yea, DUH... I keep forgetting!  LOL  Thanks for the reminder!  I'm such a numb skull sometimes! cheeky

  • RAMWolffRAMWolff Posts: 10,212
    edited October 2018

    Moving forward.  Thanks for all the tips and info Mustakettu85 Very useful.  i did need more Diffuse strength than you suggested. My maps look like zombie maps when the Diffuse strength is set to the AWE default or your suggested 60% so I have mine set to 85% to bring some flush back into the skin.  The inner mouth was pretty easy to fix with some messing with the Diffuse strength and the Diffuse color channels (same with the Eye Socket / Lacrimials) The eyes on the other hand look pretty bad.  Not sure what to do to get reflections going again since this set up has SO MANY options compared to other 3Delight setups do. .... Suggestions??  Also, what would I do to get some of the gloss off of the skin, it's a bit too shiny for my tastes.  Looks like he just got out of the shower.  I am using the dome that Wowie included with the DAZ Default HDR plugged into it.  

    I do like the quality of the skin as it's rendering but it's a bit slower than my other 3DL setup that I'm developing for a character I'm getting ready for market... 

    AWE 3Delight Shader base.jpg
    976 x 837 - 251K
    Post edited by RAMWolff on
  • Sven DullahSven Dullah Posts: 7,621
    edited October 2018
    RAMWolff said:

    Moving forward.  Thanks for all the tips and info Mustakettu85 Very useful.  i did need more Diffuse strength than you suggested. My maps look like zombie maps when the Diffuse strength is set to the AWE default or your suggested 60% so I have mine set to 85% to bring some flush back into the skin.  The inner mouth was pretty easy to fix with some messing with the Diffuse strength and the Diffuse color channels (same with the Eye Socket / Lacrimials) The eyes on the other hand look pretty bad.  Not sure what to do to get reflections going again since this set up has SO MANY options compared to other 3Delight setups do. .... Suggestions??  Also, what would I do to get some of the gloss off of the skin, it's a bit too shiny for my tastes.  Looks like he just got out of the shower.  I am using the dome that Wowie included with the DAZ Default HDR plugged into it.  

    I do like the quality of the skin as it's rendering but it's a bit slower than my other 3DL setup that I'm developing for a character I'm getting ready for market... 

    I set diffuse strength to about 60-65%, leave SSS strength at 100% and adjust the SSS scale and phase (and maybe absorbation) to get the desired result. Try lowering spec2 strength or set spec2 color to a light grey, also for a more "weathered" look try decreasign spec2 roughness a bit. You can try enabling spec 1 reflections for the eyes and experiment with roughness and  so on. Also if that doesn't give you enough environmental reflections try enabling the base thin coat and increase thin coat thickness or whatever it is called;) Also experiment with the environment exposure! Aand, check cornea bulge morph, try dialing in a fair bit, can help with reflections.

    Be aware that if you use displacement I've found it's not properly calibrated (sorry wowie). If you set the min value to -1 and the max value to -0.59, then adjust strength, you'll get pretty nice results.

    More findings and discussions in here: https://www.daz3d.com/forums/discussion/284366/the-official-awesurface-test-track/p1

    Post edited by Sven Dullah on
  • RAMWolffRAMWolff Posts: 10,212

    Thanks for the tips.  The eyes are not improving with that bit of info sadly!  I've even tried to raise up the thin coat thickness to no avail. 

    Also I find it interesting that the environment sphere with the light emitter applied to it is NOT showing in renders, even with the front/back option enabled.  Also tends to wash out the figure to white unless I lower the Spread angle down  to something like 17%.  The Gamma is set to 1 but I thought we were all using 2.0 these days or something like that! 

  • Sven DullahSven Dullah Posts: 7,621
    edited October 2018
    RAMWolff said:

    Thanks for the tips.  The eyes are not improving with that bit of info sadly!  I've even tried to raise up the thin coat thickness to no avail. 

    Also I find it interesting that the environment sphere with the light emitter applied to it is NOT showing in renders, even with the front/back option enabled.  Also tends to wash out the figure to white unless I lower the Spread angle down  to something like 17%.  The Gamma is set to 1 but I thought we were all using 2.0 these days or something like that! 

    Wait... you should be using the awe environmental shader on the env. sphere! Load the awe starter scene, save the awe environment as a subset, it has a light node included with many adjustment options. You can save the shader as a preset and apply it to stuff like light bulbs and neon signs too!

    Post edited by Sven Dullah on
Sign In or Register to comment.