問題タブ [texture-mapping]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
373 参照

java - Android テクスチャ マッピング - PNG ファイルでのマッピングが正しくない

私はオープングルに関しては専門家ではありませんが、多くのアプリケーションで使用してきました。Opengles でリフレッシュするために新しいアプリを作成し、四角形を描きました。テクスチャ マッピングを適用すると、正しくマッピングされませんでした。UV 座標を何度も何度も徹底的に調べたところ、正しいように思えました。何時間も混乱した後、最終的に.pngをWebからダウンロードしたランダムなものに変更することにしました。出来上がり!正しくマッピングされていました。古い .png に戻すと、再び間違ってマッピングされました。なぜこれが起こっているのか誰か教えてもらえますか?

0 投票する
1 に答える
24423 参照

javascript - HTML5 Canvas を使用した画像操作とテクスチャ マッピング?

私が取り組んでいる 3D エンジンでは、3D で立方体をうまく描画できました。私に関する限り、側面を塗りつぶす唯一の方法は、単色またはグラデーションのいずれかを使用することです。もっとエキサイティングにするために、単純なビットマップを使用してテクスチャ マッピングを実装したいと思っています。

要点は、JavaScript での画像操作に関する記事やコード サンプルがほとんど見つからないことです。さらに、HTML5 キャンバスでの画像のサポートはトリミングに限定されているようです。

長方形のビットマップが不規則な立方体の面を埋めることができるように、ビットマップを引き伸ばすにはどうすればよいですか? 2D では、投影された正方形立方体の面は遠近法により正方形ではないため、四角形に収まるように伸ばす必要があります。

うまくいけば、この画像が私の主張を明確にします。左面が白/黒のグラデーションで塗りつぶされました。テクスチャ マッピングされた後、ビットマップで塗りつぶすにはどうすればよいですか?

キューブ

JavaScript と HTML5 Canvas を使用したパースペクティブ テクスチャ マッピング (または画像操作) に関するヒントはありますか?

編集: 6502 のおかげでうまくいきました!

ただし、かなり CPU を集中的に使用するため、最適化のアイデアをぜひお聞かせください。

6502 の手法を使用した結果-テクスチャ画像を使用

0 投票する
2 に答える
3212 参照

opengl - クワッドの一部でのOpenGL3Dテクスチャとマッピング

私はMinecraft風の地形エンジンを作成してOpenGLと3Dを学習していますが、満足していないFPSを除いてすべてが正常に機能します。

50k頂点/フレームで約66fps

現在:私は現在、可視面のみを描画しており、錐台カリングを使用しています。キューブは16 x 16 x 32のキューブチャンクになっています(今のところ)。

チャンクごとに6つのディスプレイリストを使用します。各サイド(左、右、前、後ろ、上、下)に1つずつあるため、立方体は1つずつではなく、チャンクの側面全体に描画されます。

この方法で私は約20〜100fpsを取得しますが、これは素晴らしいことではありません。プロファイリングによると、グラフィックカードに約100kの頂点を送信し、空を見て頂点が10kを下回るとすぐに、最大200 + fpsになるので、それが私のボトルネックだと思います。

私がやりたいこと:少ないほど多いので、これを見つけました: http://ogre3d.org/forums/viewtopic.php?f=2&t=60381& p=405688#p404631

私が理解していることから、Kojackは巨大な平面の3Dメッシュを使用し、どういうわけか2Dテクスチャアトラスからこれらの巨大な平面の特定の場所にテクスチャを描画します。彼は、256x256x256の3Dテクスチャと、緑と青のチャネルを使用して2Dテクスチャアトラスにマッピングすると述べています。

彼の方法では、平面の頂点の数は一定であり、マップが適用されている場合は役に立たないこともありますが、それでも現在の頂点よりも少なくなっています。

私の問題:彼の言ったことは何も理解できませんでした:(、彼の方法を試したいのですが、彼が何をしたのか正確にはわかりません。ほとんどの場合、3Dテクスチャの経験が不足していると思います(ブロックを想像しています) 3Dテクスチャマップを使用して、テクスチャアトラスから平面の一部のみにテクスチャをどのようにマッピングしましたか。

誰かがコジャックが何をしたかを説明したり、私に役立つ場所を教えてもらえますか?グーグルでさえ今は何の助けにもなりません。

0 投票する
1 に答える
1507 参照

android - android opengl texture-mapping は頂点の順序によってどのように影響を受けますか?

Androidプラットフォームでテクスチャマッピングをopengl三角形に適用する正しい方法を理解しようとしています。奇妙な動作を見つけました。頂点を指定する順序によってテクスチャ マッピングが影響を受けるようです。

ここに具体的な問題があります。この画像では、テクスチャ、三角形、および目的のマッピングを確認できます: (2 つの画像を 1 つのリンクに結合する必要がありました。申し訳ありません)

結合画像

実際のテクスチャ画像は 2x2 の png です。

コードは、基本的にレンダラーとモデルの 2 つのクラスに分割されます。

  • レンダラー

これはopenglの初期化です(ここにはまだ完全には理解していないことがたくさんあります。例からこのコードを採用しただけです:

フレーム レンダリング関数 (実際の描画は m.draw(gl) 呼び出しで行われます):

  • モデル

モデルクラスは次のとおりです。

そして最後に AssetTextureLoader クラスです。これは、プロジェクトの「assets」フォルダーからテクスチャ ファイルをロードします (退屈な例外処理コードは削除されています)。

Ok。OneTriangle クラスでわかるように、コメント付きの「正しい」初期化があります。これは基本的に ABC の順序で頂点をリストし、赤 - 緑 - 黄色の順序でマッピングをリストします。そのコードは正しいテクスチャ マッピングを生成します。

次に、「間違った」セクションの頂点の順序を単純に変更しようとしました: BCA と緑黄赤。A は常に赤にマップされ、B は緑にマップされ、C は黄色にマップされるため、まったく同じ出力が得られると予想されます。しかし、代わりに、まったく異なる出力が得られます。

ここでは、2 つの出力を確認できます: (前の画像の 2 番目の部分を参照)

しかし、もっとあります!この方法でモデルの初期化を再度変更すると:

.. 正しいマッピングが得られました! 実際、idx 配列の任意の順序を選択できますが、それは問題ではありません。vt 配列がその特定の rgy 順序である限り、正しい画像が得られます。

なぜopenglは私にとても敵対的ですか?

非常に長い投稿で申し訳ありませんが、間違い (もしあれば) は実装のどこかに隠れている可能性があります..

0 投票する
4 に答える
1572 参照

opengl - OpenGLテクスチャマッピングは頑固に機能しません

私はDプログラミング言語でSDLとOpenGLを使用して2Dゲームを書いています。現時点では、テクスチャマッピングされたクワッドを画面にレンダリングしようとしているだけです。問題は、テクスチャマッピング部分全体が完全に機能していないように見えることです。テクスチャは明らかに正常に読み込まれますが(ゼロ以外のテクスチャ番号が割り当てられ、glGetErrorがゼロ以外の値を返すことはありません)、クワッドはglColorで設定された最後の色でレンダリングされ、テクスチャは完全に無視されます。

この質問を含め、テクスチャマッピングが失敗する一般的な理由を探しましたが、役に立ちませんでした。ロードされるイメージファイルは64x64で、有効な2の累乗サイズです。

これはDであるため、怖がらないでください。ほぼ完全にCスタイルのSDLおよびOpenGL呼び出しです。

SDL初期化コード:

OpenGL初期化コード:

テクスチャ読み込みコード:

レンダリングコード:

私のプログラムは、DのSDLおよびOpenGLバインディングを提供するライブラリであるDerelict2を使用しています。

ここで何がうまくいかないのかについてのアイデアはありますか?

編集:将来の参考のために、これが私の問題の解決策です:

http://www.opengl.org/wiki/Common_Mistakes#Creating_a_Texture

呼び出す前にいくつかのパラメータを設定する必要がありましたglTexImage2D。そうしないと、テクスチャが技術的に不完全でした。その呼び出しの直前に次の4行を追加すると、うまくいきました。

0 投票する
2 に答える
1493 参照

php - PHP による 3D テクスチャリング

このhttp://de.novumpro.com/typo3temp/pics/0512014950.jpg http://de.novumpro.com/typo3temp/pics/0512014950.jpgを PHP と 2 つのソース画像で生成したい: グレーの本の背景とブック カバーのテクスチャ (前面、回転なし)。

2 つの画像を結合することは GD では問題ありませんが、最初に本の表紙を 3D 回転する必要があります。

Image_3Dはテクスチャリングを行いません。

ImageMagic は役に立ちますか?

他のオプションはありますか?

0 投票する
1 に答える
114 参照

ipad - フラグメント シェーダーのテクスチャ マッピングが 3.2.x を実行している iPad でサポートされているかどうかを誰か確認できますか?

シミュレーターでは 3.2 でテストしても問題はありませんが、デバイスではテクスチャが表示されません。4.2 では、シミュレーターとデバイスの両方で正常に動作します。

私は問題を特定しようとしており、3.2.x (iPad のみ) の特定の機能にバグがあるかどうか誰かが確認できるかどうか疑問に思っています。何が間違っているのかについて他に考えがある場合は、お知らせください。私は OpenGL の経験があまりありません。

0 投票する
2 に答える
1855 参照

iphone - OpenGL ES タイル テクスチャ ミップマップの問題 - iPad/iPhone

ここに画像の説明を入力OpenGL ES を使用して、iPad で従来のタイル/ミップマップの問題が発生しています。基本的に、大きなテクスチャ (1k X 1k より大きい) がある場合は、それを断片に分割し、それらの断片を個々のポリゴンにマッピングできます。テクスチャ座標をエッジにクランプでき、ほとんどの場合は機能しますが、境界に沿ってアーティファクトが発生します。

これで、なぜこれが発生するのかがわかり、従来のソリューションが何であるかがわかりました。つまり、それぞれの小さなテクスチャ (たとえば 6 ピクセル) の外側に境界線を作成します。小さなテクスチャから大きなテクスチャにサンプリングするので、それらの内側のピクセル (256-2*6 など) を使用するだけです。次に、有効なピクセルを境界領域に塗りつけます。最後に、テクスチャ座標をマッピングして、有効な内部ピクセルのみを使用します。正常に動作します。

この時点でうなずいていない場合は、答えようとしないでください。:-)

とにかく、OpenGLはこれを解決するためにクランプモードを導入しました。これらのモードは OpenGL ES (少なくともこのハードウェアでは) には見られず、この問題に関する他の参照も見られます。何かが欠けているのではないかと思います。私が気付いていないタイル/エッジの問題を解決する新しい方法はありますか?

[更新] 結果のスクリーンショットをここに添付します。目に見える線は、あるテクスチャの終わりと別のテクスチャの始まりにあります。これはCLAMP_TO_EDGEを使用しています。

0 投票する
2 に答える
459 参照

android - テクスチャ マッピング

次のように、opengl を使用してテクスチャをスプライトに適用しようとしています。

.....

私はアンドロイドでandEngineフレームワークを使用しており、スプライトのonManagedDrawメソッドを使用してこれを行っています。

誰でもこの方向で助けることができますか?

0 投票する
1 に答える
846 参照

objective-c - 私のopenglテクスチャの下部にある奇妙な細い線または点

これに似たアプリを作成しました: http://www.youtube.com/watch?v=U2uH-jrsSxs (音は少し大きくて悪いです)。問題は、すべてのテクスチャの下部に非常に細い線/ドット/何かが表示されることです。ほとんど目立たないのですが、そこにあり、その理由はわかりません。私のテクスチャのサイズは 256x256 です。テクスチャサイズ128x128で以前にテストしましたが、そこには何もなかったと思いますが、確かではありません. 薄いのであまり気にならない程度ですが、気になるところです。これがスクリーンショットです。これらの行を赤で選択しました。私は OpenGL(ES) の初心者なので、おそらく何か間違ったことをしたのでしょう。どんな助けでも大歓迎です。