glslで接戦を受け取りたい
とし  2025/07/02(Wed) 16:43
//
// VSInput
//
layout(location = 0) in vec4 VertexPosition;
layout(location = 1) in vec3 VertexNormal;
layout(location = 2) in vec2 VertexUV;
layout(location = 3) in vec4 VertexTangent; <−

と書いて接線を受け取りたいのですが、可能でしょうか?
何か値を受け取っているようなのですが、正しいかどうか確認する方法が思い浮かばなかったので質問させていただきます。
記事編集
Reputeless  2025/07/04(Fri) 10:39
Siv3D v0.6.x では標準の 3D 描画処理において「接線(tangent)」の情報は頂点データに含まれていません。
そのため、カスタムの頂点シェーダで VertexTangent のような変数を追加しても、値は正しく渡されません。
「VSInput」部分の定義は Siv3D の内部で固定されており、自由に変更することはできません。

現行バージョン v0.6.x で接線を使いたい場合、
定数バッファ(最大 64KB / slot)を使って、配列として自前で渡すことが 1 つの方法です。

次期 Siv3D v0.8 では tangent を含めることが計画(優先度・高)に入っています。
お手数をおかけしますが、次期バージョンまでお待ちいただけると幸いです。
編集
とし  2025/07/06(Sun) 07:25
お返事ありがとうございます
0.8、ますます楽しみになりました!
編集
件名
Re: glslで接戦を受け取りたい
名前
コメント
画像添付


投稿修正キー (投稿を修正する時に使います)
画像認証 (右画像の数字を入力) 投稿キー

- WEB PATIO -