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

OpenSubdiv.OPENSUBDIV_VERSION.Osd.CLEvaluator

Osd.CLEvaluator是OpenSubdiv库中的一个计算机图形技术,它是用于在GPU上评估几何网格的算法。

概述

Osd.CLEvaluator是一个高效的OpenGL Compute Shader算法,用于在GPU上评估细分表面的控制点和细分结果。它能够处理多个细分层次,每个层次都有定义如何计算几何网格的着色器,支持多种细分算法,比如Loop、Catmull-Clark和Bilinear等。

使用

Osd.CLEvaluator被设计为具有多种数据源的模块。使用它时,可以将模块包含在OpenGL程序中,并配置为用于评估特定控制点和细分结果。下面是使用Osd.CLEvaluator的基本流程:

  1. 创建Evaluators:创建需要的细分层次Evaluator。
  2. 初始化Evaluator:创建初始化Osd.CLInitUniformEvaluator实例。这将设置新的细分层次。
  3. 确定时间步长:确定当前时间步长。
  4. 为Evaluator分配输入数据:为CLInput的实例分配顶点和顶点索引数据。
  5. 计算Evaluator:计算细分结果。
  6. 输出数据:使用Osd.CLBindVertexBuffers和Osd.CLBindPatchVertexBuffer将结果绑定到正确的OpenGL缓冲区。

API

Osd.CLEvaluator的API主要包含了以下类:

Osd.CLEvaluator

这是Osd库中的主要类,用于提交细分任务、配置OpenGL环境等。

常用方法:

  • Evaluate:计算细分结果。

Osd.CLComputeContext

提供OpenGL Compute Shader的上下文。

常用方法:

  • runCompute:在OpenGL Compute Shader中运行计算。

Osd.CLPatchTable

一个包含用于处理每个分割补丁的信息的类。

常用方法:

  • Update:更新补丁表。

Osd.CLInput

提供给Evaluator的输入数据。

常用方法:

  • Update:更新输入数据。

结论

OpenSubdiv.OPENSUBDIV_VERSION.Osd.CLEvaluator是一个高效的OpenGL Compute Shader算法,适用于评估细分表面的控制点和细分结果。它支持多种细分算法和多个细分层次,并提供了丰富的API接口供开发者使用。