2017-10-04 3 views
0

インスタント時の私の最初のスタブ。私はvertexAttribDivisorANGLEを使用する2つの属性バッファを持っています。私は1つの属性バッファに位置データと回転データを置き、別の属性バッファにテクスチャデータを配置します。私は1つのテクスチャでスプライトシートを使用しているので、描画したい各フレームの最初の位置とサイズを送信する必要があります。位置/回転バッファは正常に表示されますが、デスクトップクロムではテクスチャバッファが断続的に破損しているようです。テクスチャの点滅が正しく表示されますが、スプライトシート全体がクワッドまたはランダムノイズにマッピングされています。モバイルクロムで完全にレンダリングされているようです。差があれば、バッファには異なる除数があります。AndroidとデスクトップChromeの間でdrawArraysInstancedANGLEの結果が一致しません。デスクトップ上の断続的に破損した(?)属性バッファー

モバイルとデスクトップがどのようにレンダリングされるかの矛盾した崩壊した頂点バッファに関する情報を検索すると、結果が見つからないようです。 http://industriousthought.com/glLab.html

答えて

1

問題がdrawCircles-vertex-shader行列poseMであなたの頂点シェーダが完全に初期化されていない場合ということのようだ:

はここでライブデモです。ここにあなたのシェーダの一部です:ゼロに行列の残りのコンポーネントを初期化

mat4 poseM; 
poseM[0][0] = 1.0/a_pose.z; 
poseM[1][1] = 1.0/a_pose.w; 
poseM[2][2] = 1.0; 
poseM[3][3] = 1.0; 
poseM[3][0] = 1.0/a_pose.z * a_pose.x; 
poseM[3][1] = 1.0/a_pose.w * a_pose.y; 

は、合理的な結果であると思われるもの作り出す:行列を初期化する

mat4 poseM; 
poseM[0][0] = 1.0/a_pose.z; 
poseM[0][1] = 0.0; 
poseM[0][2] = 0.0; 
poseM[0][3] = 0.0; 
poseM[1][0] = 0.0; 
poseM[1][1] = 1.0/a_pose.w; 
poseM[1][2] = 0.0; 
poseM[1][3] = 0.0; 
poseM[2][0] = 0.0; 
poseM[2][1] = 0.0; 
poseM[2][2] = 1.0; 
poseM[2][3] = 0.0; 
poseM[3][0] = 1.0/a_pose.z * a_pose.x; 
poseM[3][1] = 1.0/a_pose.w * a_pose.y; 
poseM[3][2] = 0.0; 
poseM[3][3] = 1.0; 

Part of rendered image

短いバージョンを:

mat4 poseM = mat4(1.); // Initializes matrix to identity 
poseM[0][0] = 1.0/a_pose.z; 
poseM[1][1] = 1.0/a_pose.w; 
poseM[3][0] = 1.0/a_pose.z * a_pose.x; 
poseM[3][1] = 1.0/a_pose.w * a_pose.y; 
+0

これは完璧です、ありがとうございます。 –

関連する問題