|
|
Hi there,
Here's an interesting effect - for my never-ending Metallica/military project, I
added an extruded wall around the indented green center of the logo (which has
ambient .1), to enhance the glowing effect that radiosity causes. It worked, but
when I added "no_image" to the wall it also stopped contributing a radiosity
effect to all the letters except the "I." The only thing unique about the "I" is
that it's a simple box, as opposed to a more complex CSG object. For example,
the "L" is a box with another box differenced from the upper right corner. I'm
using version 3.7 beta 37a. I don't see anything related to this on the bug
reports website so I'm guessing I'm missing something again but I'm curious if
anyone else has noticed this.
Regards,
Dave Blandston
Post a reply to this message
Attachments:
Download 'demo.jpg' (66 KB)
Preview of image 'demo.jpg'
|
|
|
|
Am 15.06.2010 04:52, schrieb Dave Blandston:
> Hi there,
>
> Here's an interesting effect - for my never-ending Metallica/military project, I
> added an extruded wall around the indented green center of the logo (which has
> ambient .1), to enhance the glowing effect that radiosity causes. It worked, but
> when I added "no_image" to the wall it also stopped contributing a radiosity
> effect to all the letters except the "I." The only thing unique about the "I" is
> that it's a simple box, as opposed to a more complex CSG object. For example,
> the "L" is a box with another box differenced from the upper right corner.
Are you using the "no_image" on the letters, or on the individual CSG
members?
Post a reply to this message
|
|
|
|
clipka <ano### [at] anonymousorg> wrote:
> Are you using the "no_image" on the letters, or on the individual CSG
> members?
Each letter is created individually then unioned together to create the entire
logo. The macro that makes the logo takes one arguement, which is the amount to
shrink the border of each individual letter, then makes a one-unit deep complete
logo. I used multiple scaled and translated copies of the complete logo unioned
and differenced together to make the beveled edges and indented center, as well
as the "invisible" extruded walls intended to enhance the glowing radiosity
effect. the "no_image" tag is applied to the entire extrusion just before being
unioned with the visible logo. If you're interested, I would be happy to make a
simplified demo scene and post the code.
As a side note, I used the same technique with height_fields and the invisible
extruded walls did in fact have a radiosity effect on the visible height_field,
similar to the "I" in the logo.
Regards,
Dave Blandston
Post a reply to this message
|
|
|
|
Here's a simple demo scene to illustrate what's going on. I made it to
experiment with but since it's completed I'll go ahead and post it.
---------------------------------------
#local HideExtrusion = yes;
//Note the difference in the interior (blue) portions
//when the extrusion is hidden (no_image, no_reflection)
//compared to when it's not hidden. When the extrusion
//is hidden, it still has a radiosity effect on the "I,"
//but not on the "L." When it's not hidden, it has a
//radiosity effect on both letters.
global_settings {
max_trace_level 20
radiosity {
count 300
error_bound .02
nearest_count 16
adc_bailout .1
pretrace_start .08
pretrace_end .004
recursion_limit 2
} //radiosity
} //global_settings
#include "colors.inc"
#include "metals.inc"
camera {
location <0, 0, -20>
direction <0, 0, 4/3>
look_at <0, 0, 0>
rotate -20 * x
} //camera
#local Dome = object {
difference {
sphere {0, 20001}
sphere {0, 20000}
} //difference
texture {
pigment {
gradient z
color_map {
[0 color White * 7]
[.4 color Black]
[1 color Black]
} //color_map
} //pigment
finish {ambient 1 diffuse 0}
scale <1, 1, 20000>
} //texture
no_reflection
no_shadow
} //object
object {Dome}
#local OuterColor = texture {pigment {color DarkOrchid}}
#local InnerColor = texture {T_Gold_5E}
#local LogoColor = texture {pigment {color SkyBlue}}
#macro CreateLogo (BorderWidth)
#local L_ = object {
difference {
box {<BorderWidth, BorderWidth, 0> <3.55 - BorderWidth, 5.8 -
BorderWidth, 1>}
box {<1.65 - BorderWidth, 1.9 - BorderWidth, -.1> <3.7, 5.9, 1.1>}
} //difference
} //object
#local I_ = object {
box {<BorderWidth, BorderWidth, 0> <1.8 - BorderWidth, 5.8 - BorderWidth,
1>}
} //object
union {
object {L_}
object {I_ translate 3.8 * x}
} //union
#end //#macro CreateLogo
#local LogoDepth = 2; //Depth of the entire logo
#local BorderWidth = .2; //Width of the visible border and the invisible
extrusion.
#local BorderDepth = .36; //Depth of the visible border.
#local RadiosityExtensionDepth = .8; //Depth of the invisible extrusion, and
hence the amount of radiosity enhancement.
//The visible logo:
#local LOGO1 = object {
CreateLogo (0)
scale <1, 1, LogoDepth>
texture {OuterColor}
} //object
#local LOGO2 = object {
CreateLogo (BorderWidth)
scale <1, 1, 1.1>
} //object
#local LOGO2 = object {
intersection {
object {LOGO2 texture {InnerColor}}
plane {z, 1 texture {LogoColor}}
} //intersection
translate (-1 + BorderDepth) * z
} //object
#local LOGO = object {
difference {
object {LOGO1}
object {LOGO2}
} //difference
} //object
//Now for the invisible extrusion:
#local LOGO1 = object {
CreateLogo (0)
} //object
#local LOGO2 = object {
CreateLogo (BorderWidth)
scale <1, 1, 1.2>
translate -.1 * z
} //object
#local LOGO1 = object {
difference {
object {LOGO1}
object {LOGO2}
} //difference
translate -1 * z
scale <1, 1, RadiosityExtensionDepth>
texture {pigment {color Red}} //Contrasting color for ease of de-bugging.
#if (HideExtrusion)
no_image
no_reflection
#end //#if
} //object
//Combine the visible logo and the invisible extrusion:
#local LOGO = object {
union {
object {LOGO}
object {LOGO1 translate -.0001 * z}
} //union
no_shadow
} //object
object {LOGO translate <0, -2, -LogoDepth>}
plane {z, .8 inverse pigment {color DarkOliveGreen}}
Post a reply to this message
|
|