朱峰社区为你展现纹理支持和纹理映射

修改
鏉ユ簮: 貌似殊途 浏览 2093 日期 2011-10-23 0

纹理支持和纹理映射有区别。为了避免混淆这个教程将告诉你他们的不同是什么。

  使用者通常这样赋予物体纹理支持 :

  model > get > property > texture projection > xy

  或先赋予纹理图像:

  render > get > texture > image

然后打开图像的属性编辑器:

  点击new选择一种投射方式

  一个绿色的平面物体出现在视图中。这被称为纹理支持:

在浏览器中,它看起来像这样:

  你可以认为纹理支持是所有纹理映射的 "父物体" 。到底什么是映射,它和纹理支持有什么关系?

  纹理映射是一个给于物体纹理坐标的物体。要得到纹理映射,使用者必须首先选择纹理支持 (父物体) 按"j" 。下面是按"j"後的纹理映射。

使用者现在能通过移动边角来缩放它( 左键) ,通过中间部分可以以动它,或用中键旋转它。

  在下面的路径,uv信息被加入到纹理映射堆楗 [object].polymsh.cls.texture_coordinates_auto.texture_projection

  这里你将会找到它:

展开节点

  你能通过textureop来临时冻结uv:双击textureop,在打开的属性编辑器底部你可以找到一个mute开关,你可以勾选它。当你想要更新uv,只需简单的关闭它。

  你可以通过打开物体层级下面的纹理支持的属性编辑器来翻转uv。你也可以通过打开纹理影射层级下面的纹理支持的属性编辑器来翻转uv。你也许要问,在纹理影射层级下面的纹理支持是什么用。它只是简单的显示它的父物体(纹理支持)的信息以便你想改变它。它将减少你的鼠标点击。

  如果你想要冻结纹理映射,你也可以通过屏幕右下的冻结按钮实现。要知道这样你将会无法再改变任何东西除非你用纹理编辑器。

  这些看起来都很好, 但你可能问你自己这些能做什么…这全部为了保存事物的整体而且给使用者所有的力量。举例来说。因为纹理支持是一个独立的物体(你在3d 视图中旋传,位移,缩放它),你能在你的场景中分配为多个物体分配一个纹理支持。

  为什么这样?并且该如何做?

  在现场中,我将会有多样的物体,而且我想要一种纹理去影响多个的物体产生效果。你想你要真么去做:

[next]

  1.取得 3个球体而且移动他们成一排   model > create > primitive > polygon mesh > sphere

  2.选择所有的3个球体而且群组他们  屏幕右下的edit button > group

  3.应用纹理支持到组  render > get > property > texture projection > xy

  (要知道如果你通过图像节点来应用纹理支持到组,这将为每个物体产生单独的纹理支持。这是就我们为什麽要通过左边的工具栏来得到纹理支持。)

  4.应用材料和一种纹理到团体  render > get > material > phong

   打开材质属性编辑器, 右键点击diffuse右边的控制按钮(位于漫射叁数右边) 选择blendwith > image

  5.关闭属性编辑器

  6.按q画出渲染区域或把视图转换成纹理显示

  7.选择纹理支持(绿色框) 并且旋转,移动,缩放它。注意物体的变化。

  script:

  newscene

  createprim "sphere", "meshsurface"

  duplicate "sphere", , 2, 1, 1, 0, 0, 1, 0, 1

  translate , 8.621, 0.000, 0.000, sirelative, siview, siobj, sixyz

  duplicate "sphere1", , 2, 1, 1, 0, 0, 1, 0, 1

  toggleselection "sphere1", , true

  toggleselection "sphere", , true

  creategroup

  createprojection "group", "sitxtplanarxy", "sitxtdefaultplanarxy", , "texture_projection"

  applyshader

  blendinpresetswithportsinsp , "group.material.phong.diffuse"

  仅仅由于上述的例子,你能看见 xsi 纹理工具的潜在力量。

[next]

  我希望这将会帮助你了解纹理基本的观念而且帮助你为你的场景添加纹理!

评论

{{ username ? username.charAt(0).toUpperCase() : '?' }}
Ctrl+Enter 发布
{{ (c.username || c.author_name || '?').charAt(0).toUpperCase() }}
{{ c.username || c.author_name }} {{ Utils.formatDate(c.created_at) }}