OpenSubdiv.OPENSUBDIV_VERSION.Bfr
OpenSubdiv.OPENSUBDIV_VERSION.Far
OpenSubdiv.OPENSUBDIV_VERSION.Osd
OpenSubdiv.OPENSUBDIV_VERSION.Sdc
OpenSubdiv.OPENSUBDIV_VERSION.Vtr

OpenSubdiv.OPENSUBDIV_VERSION.Osd.GLComputeEvaluator

概述

OpenSubdiv.OPENSUBDIV_VERSION.Osd.GLComputeEvaluator是一个用于计算OpenGL计算着色器的类。它是OpenSubdiv几何细分库的一部分,提供高效的计算着色器实现,以便在GPU上进行细分。

使用

Osd.GLComputeEvaluator类的实例通常使用Osd.GLVertexBuffer对象作为输入。它为每个顶点计算一个新的位置,并返回一个新的Osd.GLVertexBuffer对象。

import OpenSubdiv as osd

# 创建Osd.GLComputeEvaluator对象
evaluator = osd.Osd.GLComputeEvaluator()

# 使用Osd.GLVertexBuffer对象进行计算
input_vertices = osd.Osd.GLVertexBuffer()
output_vertices = evaluator.evaluate(input_vertices)

API

evaluate(input_vertices: Osd.GLVertexBuffer) -> Osd.GLVertexBuffer

计算输入缓冲区中的每个顶点的新位置,并返回一个新的Osd.GLVertexBuffer对象,其中包含新的顶点位置。

参数

  • input_vertices:Osd.GLVertexBuffer对象,包含输入顶点数据。

返回

  • Osd.GLVertexBuffer:包含新的顶点位置数据的Osd.GLVertexBuffer对象。

类属性

顶点属性绑定点

Osd.GLComputeEvaluator类的顶点属性可以通过以下绑定点访问:

  • kVertexBuffer:用于顶点位置属性的绑定点。
  • kVertexValenceBuffer:用于顶点度数(相邻顶点数量)属性的绑定点。
  • kQuadOffsetBuffer:用于记录每个子细分曲面的偏移量的绑定点。
  • kPatchLevelBuffer:用于记录每个子细分曲面的细分级别的绑定点。

注意事项

在使用Osd.GLComputeEvaluator类之前,必须确保OpenGL和GLSL 4.0+在系统上可用并正确安装。此外,还需要支持OpenGL Compute Shader扩展。