ThreeJSフラグメントシェーダでノーマルマップを実装しようとしていますが、最近ではキー機能computeTangents
が失われているようですバージョン。ここで THREEJS v0.87.1:ノーマルマッピングで使用する接線とバイノーラルを生成できません
http://coryg89.github.io/technical/2013/06/01/photorealistic-3d-moon-demo-in-webgl-and-javascript/
ThreeJSに送信され、頂点に「接線」と呼ばれる属性を追加するcomputeTangents()
を使用していますシェイダー。
私は可能な限り研究し、接線を計算するシェーダのみの方法を試しましたが、これはGL_OES_standard_derivatives
というMacBook Proのエラーを引き起こすdFdx
を必要とします。
次に、接線を生成するために、BufferGeometryUtils.computeTangent()
関数で使用する単純な立方体のジオメトリをバッファジオメトリに変換しようとしましたが、「インデックス付きジオメトリ」が必要です。 ThreeJS。
元デモから、これは私が最新のThreeJSを使用して再作成する必要がある行である:ここ
var mesh = new THREE.Mesh(geo, mat);
mesh.geometry.computeTangents();
レポ:
https://github.com/CoryG89/MoonDemo
このデモは、使用して作業を取得することは可能です3の新しいバージョン?