OGLMaterial.ShadingModel

OGLMaterial.ShadingModel

説明

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

C#構文

// get accessor

siShadingModel rtn = OGLMaterial.ShadingModel;

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