強火で進め

このブログではプログラム関連の記事を中心に書いてます。

(Cg)JavaScriptのプログラムからマウスの位置をシェーダプログラムに送る方法

昨日書いたプログラムのCPU側のプログラムにJavaScriptを使ったサンプル。

MaterialPropertyBlockを使った場合のサンプルはこちら。

JavaScript
MouseJS.js

#pragma strict

private var p: MaterialPropertyBlock;

function Start () {
	p  = new MaterialPropertyBlock();
}

function Update () {
	p.Clear();
	p.AddVector("_MousePosition", Input.mousePosition);
	renderer.SetPropertyBlock(p);
}

MaterialのSetVectorを使ったものはこちら。

JavaScript
MouseJS.js

#pragma strict

private var mat: Material;

function Start () {
	mat = renderer.material;
}

function Update () {
	var mpos: Vector3 = Input.mousePosition;
	mat.SetVector("_MousePosition", mpos);
}

シェーダについては昨日のものと同じでOKです。