![]() | Script シェーダーを配置します。外部ファイル、もしくは内部のテキストデータを選択して、実行することができます。 |
![]() | 左のようなスクリプトを組みんでみます。 入力情報と、出力情報を記述しました。 色設定と光源の方向を入力情報として、結果を出力するための output が1つあります。 |
![]() | スクリプトシェーダーで入力したスクリプトを指定して更新すれば、入力と出力のソケットが作成されていることが分かります。 出力ソケットを Emission シェーダーに接続すれば、色を OSL で制御できることになります。 |
shader simple( color ambient = color(0.3, 0.3, 0.3), color diffuse = color(0.7, 0.7, 0.7), color specular = color(0.5, 0.5, 0.5), float specularPower = 24, vector lightVec = vector(0, 0, 1), output color Color = ambient ) { float diffFactor = max(0, dot(N, lightVec)); float specFactor = 0; if (diffFactor > 0) specFactor = pow(max(0, dot(I, 2 * N * dot(N, lightVec) - lightVec)), specularPower); Color = ambient + diffFactor * diffuse + specFactor * specular; } |