gpt4 book ai didi

povray - 使用图像对球体进行纹理处理,使其面向相机

转载 作者:行者123 更新时间:2023-12-04 15:00:57 27 4
gpt4 key购买 nike

我创建了一个基本球体,并且我有一个宽高比大约为 2:1 的图像用作纹理。实际图像是客户的 Logo ,因此 PNG of the UK flag是一个替身。使用基本的球体演示代码并将(缩放的)图像应用为纹理:

#include "colors.inc"

camera {
sky <0,0,1>
direction <-1,0,0>
right <-4/3,0,0>
location <30,10,1.5>
look_at <0,0,0>
angle 15
}
global_settings { ambient_light White }

light_source {
<10,-20,10>
color White*2
}

background { color White }

plane { <0,0,1>, 0 pigment {White} }

sphere {
<0, 0, 1>,
1 texture {
pigment {
image_map { png "flag.png" map_type 1 }
scale <0.1, 0.1, 0.1>
}
}
}

产生一个图像扭曲的球体,在我看来,它偏离了中心:

sphere with UK flag applied as texture

我无法准确描述我的预期,但我想我希望圣乔治十字的中心位于球体正面的正中心,直接面向相机。

最佳答案

首先,将球体移回原点,以便安全地旋转。其次,使用 math.inc 中的 VAngleD() 函数计算相机位置与应用图案的方向之间的角度。最后,将球体旋转这个角度并将其平移回原始位置。现在,无论后者在 XY 平面内的位置如何,图案的中心点将始终面向相机。您也可以添加类似的计算来减轻相机沿 Z 轴的平移。

#include "colors.inc"
#include "math.inc"

#declare SPHERE_LOCATION = <0, 0, 1>;
#declare CAMERA_POSITION = <30, 10, 1.5>;
#declare PATTERN_DIRECTION = x;

camera {
sky <0,0,1>
direction <-1,0,0>
right <-4/3,0,0>
location CAMERA_POSITION
look_at SPHERE_LOCATION
angle 15
}
global_settings { ambient_light White }

light_source {
<10,-20,10>
color White*2
}

background { color White }

plane { <0,0,1>, 0 pigment {White} }

sphere {
0,
1 texture {
pigment {
image_map { png "flag.png" map_type 1}
}
}
rotate z * (180 + VAngleD(CAMERA_POSITION, PATTERN_DIRECTION))
translate SPHERE_LOCATION
}

关于povray - 使用图像对球体进行纹理处理,使其面向相机,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66946532/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com