如何将纹理应用于使用挤压制作的对象
How to apply a texture to an object made using extrusion
我可以毫无问题地将纹理应用于使用 indexedfaceset
制作的对象,但是当我尝试将纹理应用于使用 extrusion
制作的对象时,它就像对象的面不存在一样.示例:
左图是应用普通颜色的结果,右图是应用纹理的结果。
这是应用纹理时的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Castle</title>
<script type='text/javascript' src='x3dom-full.js'>
</script>
<link rel='stylesheet' type='text/css' href='x3dom.css' />
</head>
<body>
<x3d width="512px" height="512px">
<scene>
<switch whichChoice="-1">
<extrusion id="wall" convex="true"
crossSection="
-1 -0.5
-0.7 -0.4
-0.4 -0.35
0 -0.3
0.4 -0.35
0.7 -0.4
1 -0.5
1 0.2
0.7 0.3
0.4 0.35
0 0.4
-0.4 0.35
-0.7 0.3
-1 0.2
-1 -0.5"
spine="
0 -1 0
0 0 0"
scale="
1 1
1 1">
</extrusion>
</switch>
<transform translation="0 0 0" scale="1 1 1">
<shape>
<Appearance>
<ImageTexture url="castle_walls.jpg">
</ImageTexture>
</Appearance>
<x3dgeometrynode use="wall"></x3dgeometrynode>
</shape>
</transform>
</scene>
</x3d>
</body>
</html>
如有任何帮助,我们将不胜感激。
纹理坐标由Extrusion节点自动生成。纹理被映射,使得 U 方向上的坐标范围沿着 crossSection 曲线从 0 到 1(0 对应于 crossSection 中的第一个点,1 对应于最后一个点)和 V 方向上的坐标范围从 0 到 1 沿着脊柱曲线( 0 对应第一个列出的脊椎点,1 对应最后一个)。如果 endCap 或 beginCap 存在,crossSection 曲线将统一缩放和平移,以便横截面的较大维度(X 或 Z)产生范围从 0.0 到 1.0 的纹理坐标。 beginCap 和 endCap 纹理的 S 和 T 方向对应于定义横截面坐标的 X 和 Z 方向。
我可以毫无问题地将纹理应用于使用 indexedfaceset
制作的对象,但是当我尝试将纹理应用于使用 extrusion
制作的对象时,它就像对象的面不存在一样.示例:
左图是应用普通颜色的结果,右图是应用纹理的结果。
这是应用纹理时的代码:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Castle</title>
<script type='text/javascript' src='x3dom-full.js'>
</script>
<link rel='stylesheet' type='text/css' href='x3dom.css' />
</head>
<body>
<x3d width="512px" height="512px">
<scene>
<switch whichChoice="-1">
<extrusion id="wall" convex="true"
crossSection="
-1 -0.5
-0.7 -0.4
-0.4 -0.35
0 -0.3
0.4 -0.35
0.7 -0.4
1 -0.5
1 0.2
0.7 0.3
0.4 0.35
0 0.4
-0.4 0.35
-0.7 0.3
-1 0.2
-1 -0.5"
spine="
0 -1 0
0 0 0"
scale="
1 1
1 1">
</extrusion>
</switch>
<transform translation="0 0 0" scale="1 1 1">
<shape>
<Appearance>
<ImageTexture url="castle_walls.jpg">
</ImageTexture>
</Appearance>
<x3dgeometrynode use="wall"></x3dgeometrynode>
</shape>
</transform>
</scene>
</x3d>
</body>
</html>
如有任何帮助,我们将不胜感激。
纹理坐标由Extrusion节点自动生成。纹理被映射,使得 U 方向上的坐标范围沿着 crossSection 曲线从 0 到 1(0 对应于 crossSection 中的第一个点,1 对应于最后一个点)和 V 方向上的坐标范围从 0 到 1 沿着脊柱曲线( 0 对应第一个列出的脊椎点,1 对应最后一个)。如果 endCap 或 beginCap 存在,crossSection 曲线将统一缩放和平移,以便横截面的较大维度(X 或 Z)产生范围从 0.0 到 1.0 的纹理坐标。 beginCap 和 endCap 纹理的 S 和 T 方向对应于定义横截面坐标的 X 和 Z 方向。