1

首先,我有这段代码,它创建了一个看起来像飞毯的曲面。

#include "colors.inc"

camera {
    location <5,140,25>
    look_at <0, 0, 0>   
    angle 7}                              


light_source {
    <20, 20, 20>  
    White

}


#declare Ball =
 sphere{<0,0,0>,0.25   


   texture{
     pigment{color rgb<1,0.65,0.0>}
     finish {diffuse 0.9 phong 1}
    }// end of texture 


 }// end of sphere


#declare E = 5;
#declare Z = -E;    // start value Z
#declare EndZ = E;  // end value Z
#declare Step = 0.2;// step value 

//------- loop start Z:
#while ( Z < EndZ + Step)


  #declare X = -E; // start value X
  #declare EndX = E; // end value X   


  //------ loop start X:
  #while ( X < EndX + Step)

  object{Ball
  translate<X,0.05*X*sin(X-2*Z)
           + 0.1*Z*cos(3*X-Z),Z>}

  #declare X = X+Step;//next X value
  #end // --------------- loop end X


#declare Z = Z+Step;//next Z value


#end // --------------- loop end Z     

此代码的输出: 飞毯

现在我想映射一个像这样的简单图像

示例图案图像

而不是黄色的球,我想要在曲面上映射那个简单的图案,这样图案就可以看起来像波浪形。

我试图映射球并将其循环,但显然输出不是单个方波外观的图像。(我不想重复那张照片,只是一张弯曲的图像。)

那可能吗?

谢谢..

4

1 回答 1

0

目前你预先声明一个球体,然后翻译它。如果您应用纹理,则它将与球体一起平移,因此所有纹理都将获得相同的纹理。

使用循环在联合内一次创建具有适当坐标的球体。然后将纹理应用于该联合。相应地缩放和定位纹理。

于 2019-01-15T11:19:18.803 回答