几何体

立方体

生成一个与轴对齐的单位立方体,其中体积 1 以原点为中心。

mib_geo_cube
geometry "mib_geo_cube" ()

没有任何参数。

球体

通过给定的 U 和 V 向细分数生成一个以原点为中心的多边形球体。该球体细分为在 Z 轴(经度)分布的多个“v_subdiv”子部分和在 XY 平面(纬度)分布的多个“u_subdiv”子部分。

mib_geo_sphere
geometry "mib_geo_sphere" (
    integer         "u_subdiv",
    integer         "v_subdiv")
*_subdiv
指定每个参数范围内的细分数目。如果 u_subdiv 小于 3 或 v_subdiv 小于 1,则着色器为细分使用默认值。

圆锥体

生成一个以 Z 轴为中心轴的多边形圆锥体,其中顶点和底面分别位于 Z=0 和 Z=-1 位置。该圆锥体的底面半径为 1,高度为 1。圆锥体底面圆盘细分为多个 u_subdiv 细分,即 v_subdiv 细分沿 Z 轴方向的圆锥体侧面。参数控制圆锥体底部是否封口。

mib_geo_cone
geometry "mib_geo_cone" (
    integer         "u_subdiv",
    integer         "v_subdiv",
    boolean         "capped")
*_subdiv
指定每个参数范围内的细分数目。
capped
如果为 true,则创建关闭圆锥体底部的封口。

如果 u_subdiv 小于 3 或 v_subdiv 小于 0,则着色器为细分使用默认值。

圆柱体

生成一个以 Z 轴为中心轴的多边形圆柱体,其中底面和顶面分别位于 Z=-1 和 Z=0 位置。圆柱体的半径为 1,高度为 1。两个圆柱体圆盘细分为多个 u_subdiv 细分,即 v_subdiv 细分沿 Z 轴方向的各个侧面。参数控制底部或顶部是否封口。

mib_geo_cylinder
geometry "mib_geo_cylinder" (
    integer         "u_subdiv",
    integer         "v_subdiv",
    boolean         "bottom_capped",
    boolean         "top_capped")
*_subdiv
指定每个参数范围内的细分数目。
bottom_capped
如果为 true,则创建关闭圆柱体底部的封口。
top_capped
如果为 true,则创建关闭圆柱体顶部的封口。

如果 u_subdiv 小于 3 或 v_subdiv 小于 0,则着色器为细分使用默认值。

圆环体

生成一个以原点为中心位于 XY 平面的多边形圆环。圆环由两个圆定义:较小圆围绕较大圆的中心进行旋转。

mib_geo_torus
geometry "mib_geo_torus" (
    scalar          "radius",
    scalar          "thickness",
    integer         "uSpans",
    integer         "vSpans")
radius
是较大圆的半径。
thickness
是较小圆的半径。
uSpans
vSpans
指定每个参数范围内的细分数目。

如果省略(设定为 0),参数默认设置为以下值:radius 2.0,thickness 1.0,uSpans 32,vSpans 32。

方形

生成一个以原点为中心面积为 1 的正方形,法线指向 Z 轴正方向。

mib_geo_square
geometry "mib_geo_square" ()

没有任何参数。

实例

给定上面几何体着色器的一种,构建平移、缩放和旋转几何体的实例,并返回一个成员仅为源几何体示例的组。如果结果为非零(由于基础着色器是列表的一部分),则不会创建新组,但向结果组添加实例(这是正常的几何体着色器行为)。

mib_geo_instance
geometry "mib_geo_instance" (
    geometry        "object",
    miMatrix        "matrix",
    material        "material")
object
要实例化的对象。
matrix
是新实例的变换矩阵。如果是 null 矩阵,请使用身份矩阵。
material
是要存储在实例中的继承材质。它可能为 null。

实例与材质列表

该实例着色器与以前的基本相同,只是它接受材质阵列;如果材质阵列有多个成员,则会转化为新实例中的材质列表。如果为实例化对象设置了标记,则材质列表非常有用,这意味着该对象的多边形或曲面包含作为材质阵列中索引的整数。

mib_geo_instance_mlist
geometry "mib_geo_instance_mlist" (
    geometry        "object",
    miMatrix        "matrix",
    array material  "material")
object
要实例化的对象。
matrix
是新实例的变换矩阵。如果是 null 矩阵,请使用身份矩阵。
material
是要存储在实例中的继承的材质列表。它可能为 null。

添加纹理曲面

该着色器返回输入对象的副本,该副本必须是自由形式曲面类型。该着色器将循环处理所有面,并将 1 度的 Bézier 纹理曲面作为最后一个纹理曲面添加到每个面。选择纹理曲面的参数和控制点的方法使得几何近似的参数化 UV 坐标准确映射到纹理顶点坐标,即三角形顶点的纹理坐标是三角形顶点位置的 UV 坐标。Bézier 基础始终被添加到对象副本中。

mib_geo_add_uv_texsurf
geometry "mib_geo_add_uv_texsurf" (
    geometry        "object")
object
是将被复制的自由形式曲面对象。

Copyright © 1986, 2015 NVIDIA ARC GmbH. All rights reserved.