OGLMaterial.ShadingModel

説明

このマテリアルのシェーディングモデルを、siShadingModel列挙型の値の 1 つとして戻します。マテリアルにアタッチされたmental ray シェーダは、通常OpenGLでは正確に表現できません。ただしSoftimage では、これらのシェーダを近似する最適なOpenGl シェーディングモデルの推測が試みられます。Softimage では、シェーディングモデルは、シェーダ開発者が提供するシェーダパラメータ上の特定のマーク(SPDL内のui "mapping" = "guid"構文を使用)に基づいて選択されます。これらのマークは、パラメータをディフューズ カラー、スペキュラ カラーなどとして解釈できるかどうかを、Softimage に知らせます。これらのマークの有無によって、Softimage はシェーディング モデルを推測します。たとえば、ディフューズ、スペキュラ、およびアンビエントのようなパラメータがある場合、Softimage では Phong シェーディングモデルが選択されます(OpenGLでは、実際にはGourauD です)。ディフューズおよびアンビエントのようなパラメータのみが存在する場合は、代わりにLambert が使用されることになります(Lambert シェーディングモデルにはスペキュラカラーがないからです)。アンビエントのみが存在する場合は、Constant が使用されます。

VBScript の例

dim grid, oglMat
set grid = ActiveProject.ActiveScene.Root.AddGeometry("Grid", "MeshSurface")
' First put a Phong shader on instead
ApplyShader "Phong", grid
set oglMat = grid.Material.OGLMaterial
Application.LogMessage "OGL material shading model: " & oglMat.ShadingModel
' Now put a Lambert shader on instead
ApplyShader "Lambert", grid
set oglMat = grid.Material.OGLMaterial
Application.LogMessage "OGL material shading model: " & oglMat.ShadingModel
' Finally, a constant shader
ApplyShader "Constant", grid
set oglMat = grid.Material.OGLMaterial
Application.LogMessage "OGL material shading model: " & oglMat.ShadingModel