|
|
|
|
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Hello everybody!
I use CSG to build a wall of bricks. It is a union of a box with a mortar
texture and some stones. Each of these sub-objects has is own texture but
now I want to have some kind of paiting on it. The following doesn't work:
object {
union {
box {
<wall_left+0.0001, wall_bottom+0.0001, -0.24>
<wall_right-0.0001, wall_top-0.0001, 0.24>
texture {
Mortar_Tex
}
}
//stone loop, each stone has is own texture
}
texture { //stupid texture, I know... 8-/
pigment {
gradient y
color_map {
[0.0 color White filter 1]
[1.0 color Blue]
}
scale 5
}
}
}
So why doesn't it work? Is there a simple way to do that?
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
blenderhead nous apporta ses lumieres en ce 2005-04-02 13:17:
> Hello everybody!
>
> I use CSG to build a wall of bricks. It is a union of a box with a mortar
> texture and some stones. Each of these sub-objects has is own texture but
> now I want to have some kind of paiting on it. The following doesn't work:
>
> object {
> union {
> box {
> <wall_left+0.0001, wall_bottom+0.0001, -0.24>
> <wall_right-0.0001, wall_top-0.0001, 0.24>
> texture {
> Mortar_Tex
> }
> }
>
> //stone loop, each stone has is own texture
> }
>
> texture { //stupid texture, I know... 8-/
> pigment {
> gradient y
> color_map {
> [0.0 color White filter 1]
> [1.0 color Blue]
> }
> scale 5
> }
> }
> }
>
> So why doesn't it work? Is there a simple way to do that?
>
>
In an union, when you define a texture for any element, that texture have priority and
override any
texture applied to the whole union. The general texture will apply to any element that
DON'T have a
specific texture.
The solution: remove the individual textures.
Alain
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
"blenderhead" <nomail@nomail> wrote in message
news:web.424ee1aeef5fde29dfc8659d0@news.povray.org...
> Hello everybody!
>
> I use CSG to build a wall of bricks. It is a union of a box with a mortar
> texture and some stones. Each of these sub-objects has is own texture but
> now I want to have some kind of paiting on it. The following doesn't work:
Basically, you can't do that (and it's a great shame). What you need to do
is have your outer texture included as a layered texture within each inner
texture.
See 2.3.4.10 Working With Layered Textures in the manual (but iirc the info
on the final normal is incorrect).
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Alain <ele### [at] netscapenet> wrote:
> In an union, when you define a texture for any element, that texture have priority
and override any
> texture applied to the whole union. The general texture will apply to any element
that DON'T have a
> specific texture.
Ok, thank you for explaining this! Though this is somehow disappointing for
me... :,-(
> The solution: remove the individual textures.
That is not really a solution for me since I want some kind of graffiti on
it when I have finished it.
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Wasn't it blenderhead who wrote:
>Hello everybody!
>
>I use CSG to build a wall of bricks. It is a union of a box with a mortar
>texture and some stones. Each of these sub-objects has is own texture but
>now I want to have some kind of paiting on it. The following doesn't work:
What you have to do is to layer the graffiti onto both the brick texture
and the mortar texture separately, rather than trying to do both in one
operation. Like this:
#version 3.6;
global_settings {assumed_gamma 1.0}
camera {location <10,1,-10> look_at <0,.5,0> angle 8}
background {rgb 1}
light_source {<-30, 100, -30> color rgb 1}
#include "colors.inc"
#declare wall_left = -1;
#declare wall_right = 1;
#declare wall_bottom = 0;
#declare wall_top = 1;
#declare brick_x = 0.2;
#declare brick_y = 0.1;
#declare brick_gap = 0.02;
// The basic textures for mortar, brick and graffiti
#declare Mortar_Tex = texture {pigment {LightGray}}
#declare Brick_Tex = texture {pigment {Firebrick}}
#declare Graffiti_Tex =
texture {
pigment {
spherical
color_map {
[0.5 color White filter 1]
[0.6 color Blue]
}
}
translate y*0.5
}
// Now apply the graffiti to both brick and mortar
#declare Full_Mortar_Tex =
texture {Mortar_Tex}
texture {Graffiti_Tex}
#declare Full_Brick_Tex =
texture {Brick_Tex}
texture {Graffiti_Tex}
object {
union {
// mortar
box {
<wall_left+0.0001, wall_bottom+0.0001, -0.24>
<wall_right-0.0001, wall_top-0.0001, 0.24>
texture {Full_Mortar_Tex}
}
// bricks
union {
#declare X=wall_left;
#while (X<wall_right-brick_x)
#declare Y=wall_bottom;
#while (Y<wall_top-brick_y)
box {<X,Y,-0.25><X+brick_x,Y+brick_y,0.25>}
#declare Y=Y+brick_y+brick_gap;
#end
#declare X=X+brick_x+brick_gap;
#end
texture {Full_Brick_Tex}
}
}
}
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |
| |
|
|
Thank you, it works!
It seems like I have to read the chapter about textures again... ;-)
Post a reply to this message
|
|
| |
| |
|
|
|
|
| |