問題タブ [texturing]
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.
java - FBO テクスチャが真っ黒に表示される
ThinMatrix の水のチュートリアルに従おうとしています。これを行うには、FBO を作成し、テクスチャとしてレンダリングする必要があります。
チュートリアルから直接提供されたソース コードを使用しています (リンクからコピー)。
基本的に、FrameBuffer を作成します。
次に、テクスチャ アタッチメントを作成します。
また、深度バッファ アタッチメントも作成します。
次に、オブジェクトをフレーム バッファー オブジェクトにレンダリングします。
次のようにフレーム バッファをバインドします。
glGetError() を出力したときの「エラー」は正常0
です。「フレーム バッファ セットアップ」メッセージは出力されます。
その後、呼び出しfbos.getReflectionTexture()
によってテクスチャ ID が返されることを期待しています...そして、そうです! 正常にテクスチャ ID 12 を返します。ただし、バインドしたときのテクスチャは真っ黒です。
何が問題なのか、テクスチャにレンダリングされたものが表示されない理由がわかりません。
私が知っていることは間違っていません:
私は間違いなく水自体を正しく描画し、テクスチャリングしています。プリロードされたテクスチャを使用して、水をうまくテクスチャリングできます。
また、FBO にレンダリングされるオブジェクトには、正しい移動、回転などがあります。フレーム バッファをバインドしないと、FBO 用のフォリッジが画面に正しく描画 (および表示) されます。
live - Vuforia を使用したライブ テクスチャリング
vforia を使用して 3D モデルでライブ テクスチャリングを行う可能性があるかどうかを知りたかったのです。
ライブではない場合、少なくとも図鑑から色を選んで、同じ色を拡張 3D モデルに適用できますか?
次のビデオで行われたように
opengl - glMultiDrawArrays を使用したオブジェクトのレンダリングとテクスチャの追加
現時点では、単純な 3D レンダラーを構築しています。レンダラーは、Wavefront OBJ ファイルからオブジェクト情報を読み取ります。ファイルから取得するのは、頂点座標、法線座標、および UV 座標です。OBJ ファイルには、マテリアルに関する情報を保持する MTL ファイルが付属しています。現在行っていることは、glGenBuffers を使用してバッファーを生成することです。
- 頂点バッファ
- ノーマルバッファ
- UV 座標バッファ
- 拡散色バッファ
- スペキュラ カラー バッファ
- アンビエント カラー バッファ
- 透明度バッファ
これらのバッファまたは配列は、各頂点が正しい法線、UV 座標などを持つように並べられています。
私が理解していることから、これは glMultiDrawArrays がデータを配置する方法であり、機能します。これでシーンがレンダリングされ、オブジェクトのマテリアル カラーは正しくなりましたが、テクスチャはまだありません。チュートリアルで見つけた頂点シェーダーとフラグメントシェーダーを使用していることを付け加えておく必要があります。フラグメントシェーダーは色の計算を行います。
ここで、オブジェクトにテクスチャを追加したいと考えています (上記のように、頂点には既に適切な UV 座標があります)。私が最初に考えたのは、最初にテクスチャを持たないすべてのオブジェクトをレンダリングして glMultiDrawArrays から速度の利点を得てから、テクスチャを持つ各オブジェクトを単独でレンダリングすることでした。
しかしその後、fragmentshader が UV 座標を使用して色のテクスチャをサンプリングしていることがわかりました。私の考えでは、自分で UV 座標を使用してテクスチャをサンプリングし、カラー バッファに色を書き込み (頂点の色を UV 座標を持つ頂点のテクスチャの色で上書きします)、これを行うことでシーン全体をレンダリングすることができます。一発。
私はこのトピックに非常に慣れていないので、私の質問は次のとおりです。
どうにかしてフラグメント シェーダーの外側でテクスチャ サンプラーを使用して色情報を取得できますか?
と
私の2番目の質問は、これがそもそもこれを行う完全に間違った方法であり、まだ知らない標準的な方法があるかどうかです。
誰かが私を正しい方向に向けることができれば幸いです。ありがとうございました
c++ - テクスチャは、テクスチャ イメージのメイン ピクセルのような色の塗りつぶされた正方形としてレンダリングされます。
OpenGL テクスチャをレンダリングしようとすると、テクスチャのベース カラーである単色のクワッドが表示されます。
テクスチャとレンダリングをロードするための私のコードは次のとおりです/私のシェーダー
vertexShader.vert
fragmentShader.frag
テクスチャの読み込み
テクスチャ描画
VERTS / INDICES / COLOR ARRAYS
//別のクラスで
シェーダー プログラムの一部
c# - Unity: Hexgrid での海岸線のテクスチャリング
私は初心者プログラマーで、Unity は初めてです。私は現在、Unity5 でヘックスグリッドの構築を練習しています。私の現在のヘクスグリッドは、草原または海の 2D テクスチャを持つ平らなヘクスで構成されています。(現在のヘクスグリッド)
ヘクスグリッドに砂の海岸線を入れたいです (隣接するタイルとして海タイルを持つ草原タイル)。
私の質問は、これを実装するための最良かつ最も効率的な方法は何ですか?
可能な海岸タイルごとにテクスチャを作成することを考えましたが、草原が隣接する海洋タイルの数と方向によって、約 64 の異なるテクスチャになります。
また、砂漠と草原のヘクスと深海と浅海のヘクスの間に「ぼやけた」テクスチャラインが必要ですが、その方法がわかりません...
アドバイスをいただければ幸いです。ありがとう!
c++ - OpenGL テクスチャリングの問題: テクスチャがプリミティブ カラーと混ざり合っている
だから私はOpenGLとテクスチャリングにかなり慣れていません。イメージをマップしようとしているプリミティブ (2 つの三角形) のような平面があります。私はこれを2つの方法で行いました。sampler2d ユニフォームを使用し、texture2d を呼び出して画像のピクセルをプリミティブにマップする Fragment シェーダーを作成した最初の方法は、次のように正常に動作します。
私が取った2番目のアプローチを修正
して、glEnableを使用し、シェーダーを使用しなかったため、画像は次のようになりました。
このコード
の多くは作業プロジェクトであるため、多くを投稿することはできませんが、基本的には次のようにレンダリングしています。
緑が私の glColor 呼び出しから来ていることは知っていますが、ここで舞台裏で何が起こっているのかを理解したいと思いますか? レンダリングする前に glColor を呼び出すと、すべてが緑色に着色されるため、画像が表示されないと思います。これはシェーダーの観点からは完全に理にかなっていますが、私はこのアプローチを理解していません。シェーダーで行ったように、シェーダーなしで古い方法を使用してどのように機能させるのですか?
webgl - 球面マッピング アーティファクト
webgl の球体マップ テクスチャリングに問題があります。
私のテクスチャ:
次に、球体をテクスチャリングします。球体がカメラの前にあれば、すべて問題ありません。
球は単位球 (r = 1) で、経度と緯度で定義されます。
しかし、球を x 方向 -2.5 に (カメラを回転させずに) 平行移動すると、いくつかのアーティファクトが得られます。
この画像はミップマッピングなしです。次の画像はミップマッピングを使用したものです。
頂点と法線は問題ないようです。
頂点シェーダー:
そしてフラグメントシェーダー:
なぜこれらのアーティファクトを取得するのか、誰か知っていますか? 私はWindowsとFirefoxで作業しています。
opengl - SOIL を使用して jpeg 画像をロード中に OpenGL の処理が遅くなる
私は、球体を jpeg 画像でテクスチャリングするプロジェクトと、ユーザーが球体を右または左に回転させるためのいくつかのキーボード ナビゲーション キーを使用するプロジェクトに取り組んでいます。問題は、SOIL を使用して画像を読み込もうとしたところ、正常に読み込まれましたが、問題は球の回転の処理が遅いことです...助けてください!
これは、メインメソッドで一度呼び出されるseoarateメソッドでjpeg画像をロードする方法です
これが球を作成してテクスチャを適用する方法です
c++ - 前景に表示される OpenGL 背景オブジェクト テクスチャ
オブジェクトを OpenGL で正しく表示するのに苦労しています。問題は、背景テクスチャが前景テクスチャの上に表示されることです。(葉のある写真に見られるように)
OS X el capitan で OpenGL 4.1 Core を使用しています。
ヤシの木の私のシェーダー:
VAO をアセット マネージャーに配置したので、複数のオブジェクトが同じ VAO とシェーダーを使用できます。図面は次のように呼び出されます。
私が呼び出すプログラムの開始時に:
単一の OpenGL コンテキストで同じ VAO とプログラムの組み合わせを何度も使用することは可能ですか?
このような場合は。他の誰かがこの問題を解決するかもしれない提案を持っていますか?