2017-06-21 11 views
1

通常のマッピングをSCNGeometryに追加したいとします。私は通常のマップイメージ(PNG)と、GeometrySourceとして注入されたUV座標の第2のセットを持っています。SCNGeometryでの2番目のUVセットの使用

可能であれば、影響を受けるジオメトリにシェイダーモディファイアを追加して、ノーマルマップを持つジオメトリごとにジオメトリに依存しないマテリアルを定義しないようにします。

二次テクスチャ座標セット(*)に基づいて法線を操作し、ジオメトリ結合シェーダモディファイアを使用してイメージを操作することができれば、誰でも教えてください。もしそうなら、snippletなどは非常に高く評価されます。

メタルシェーダコードがOpenGLシェーダコードより優先されます。事前に

Thxを、

EKKI

(*)これへのアクセスができない場合、私はこのために現在使用されていない頂点セマンティクスを使用することをお勧めし、そこから情報を取るだろう。ここで

は、(コメントにリンク)インプロセス版のスクリーンショットです:

enter image description here

答えて

1

SCNMaterialPropertyは、あなたがソースをマッピングするために使用されるべき座標たテクスチャを指定できますmappingChannel性質を有しています。

代わりにシェーダ修飾子を使用したいという欠点はありますか?

+0

こんにちは、mappingChannelについて知りませんでした。だから、これを実装するにはシェーダ/シェーダの変更が必要だと思った。これについて研究します。これが私の問題を解決するなら、ちょうどいいでしょう。 Thxこれまでのところ... –

+0

インデックスは、テクスチャ座標ジオメトリソースとの相対的なもので、GeometrySourcesには何もありません。私はVertexAttributeのセマンティクス "TextureCoordinate"(MDL側で事前定義されている)を使用して、2番目のUVを渡して、SCNGeometryに渡します。これは動作し、テクスチャ座標としても認識されます... –

+0

これは動作し始めています!垂直方向に問題があるようです。これは確かに少し話題にはなりますが、とにかくあなたは見ているかもしれないし、コメントがあるかもしれませんか? [link](http://ig2.intelligentgraphics.biz/owncloud/index.php/s/DGfKpu6eR1UaNw3) –

関連する問題