問題タブ [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.

0 投票する
0 に答える
951 参照

opengl - OpenGL で TexSubImage を使用してテクスチャ データをスパース テクスチャにアップロードするにはどうすればよいですか?

github で apitest をフォローしていますが、レンダラーで非常に奇妙な動作が見られます。

仮想ページが正しい画像データを受信して​​いないようです。

元の画像は 500x311 です:

元の画像

スパース テクスチャを使用してこの画像をレンダリングする場合、バッキング ストアのサイズを 512x384 (ページ サイズの倍数) に変更する必要があります。結果は次のようになります。

フルイメージ

ご覧のとおり、サブイメージの一部 (サブサブイメージ) が個々の仮想ページにロードされたように見えます。

これをテストするために、画像を 1 つの仮想ページ (256x128) のサイズにトリミングしました。結果は次のとおりです。

1 つの仮想ページの価値

予想通り、単一の仮想ページには正確で正確なトリミングされた画像が埋め込まれていました。

最後に、切り抜きサイズを 2 つの仮想ページに相当する 256x256 に増やしました。結果は次のとおりです。

2 つの仮想ページの価値

これは、Virtual_Page_Size より大きい量の texelData で texSubimage を呼び出すとエラーが発生することを証明しています。

仮想ページサイズより大きいデータを glsubimage に渡すときは注意が必要ですか? apitest にはこれに関するロジックが見当たらないので、これはドライバーの問題である可能性があると思います。または、私は何か大きなものを見逃しています。

ここにいくつかのコードがあります:

テクスチャを Texture Array に保存し、単純化するために配列をただの texture2d に変えました。どちらもまったく同じ結果になります。テクスチャ メモリの割り当ては次のとおりです。

割り当て後は次のようになります。

幅と高さをバッキング ストアの物理的な幅と、受信する画像コンテンツの幅/高さにしてみました。どちらも望ましい結果を生み出しません。今のところ mip レベルは除外します。ミップ レベルとテクスチャ アレイを使用していたとき、異なる結果が得られましたが、動作は似ていました。

また、画像はSOILからロードされ、スパーステクスチャを実装する前は非常にうまく機能していました(スパース前にバインドレスを実装しました)。

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

c++ - openGL レンダラーでテクスチャがフラクタル パターンとして表示されるのはなぜですか?

openGL を使用してテクスチャをレンダリングする作業を行っています。私は途中で立ち往生しています。

私の目標は、この写真を取得することです: http://i.imgur.com/d3kZTsn.png

これが私がいる場所です:http://i.imgur.com/uAV8q0W.png

誰もこの問題を見たことがありますか?

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

unity3d - Blender から Unity3D へのテクスチャリングの問題

ゲームのモデルを作成していますが、ホログラムのように見えるように、内側に透明なテクスチャとワイヤー フレームを適用しました。何らかの理由でそれらを Unity3D にエクスポートすると、ワイヤ フレームのない完全に白く表示されます。

FBX と .blend の両方としてエクスポートを試みました。

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

python - OpenGL - テクスチャ ティーポットのレンダリング - .obj 面と法線

vパラメータとfパラメータのみを含む.objファイルがあります。

直方体 (すべての軸の最大頂点と最小頂点によって定義される) でそれを「囲む」ことによってテクスチャを作成し、その中心を計算し、ティーポットの頂点の空間座標を中心座標から除算して、ベクトルを取得するタスクがあります。ティーポットの中心で開始し、その表面で終了し、これらのベクトル (光線) が外側の立方体の表面と交差する場所を見つけます。立方体の各面は、イメージをシミュレートする必要があります。その後、すべての頂点のテクスチャ座標を計算する必要があります。3D 交点から 2D パラメータを取得し、結果が 0 と 1 の間 (2 次元) になるように正規化するだけです。

そこで、いくつかの適切なコード行で .obj ファイルを開き、説明されているすべての計算を行って vt パラメーターを見つけ、三角形を作成するインデックス付き頂点のリストを使用して NORMALS を取得できる関数を使用します (面属性) と頂点のリスト。

次のようになります (実際には、2 つの異なるファイルにある 2 つの関数で構成されています)。

1)

ここで、self.arrs[0] は .obj から取得した v 属性のリストであり、tind は面を構成する頂点の 3 つの要素リストのリストです。

2)

ここで、「ノルム」は線形代数 NumPy セットの関数です。

その後、VOB オブジェクトを作成します。

簡単に言えば、VOB オブジェクトを使用して GPU に送信します。

vert - .obj から取得した頂点のリスト point - 上記の方法で計算されたテクスチャ座標のリスト normals - 上記の関数を使用して計算された法線ベクトルのリスト

私が使用するテクスチャ画像:テクスチャー

従来の ligthing を使用して表示しようとすると、次のようになります。

私はこのようなものを見ることができます: 通常の照明

しかし、Blinn と Phong シェーディング モデルを使用すると (おそらく誰かが同様の問題に遭遇したことを期待して、すべてを貼り付けることを回避します)、次のようになります。ブリン・アイ・フォン

どちらの状況でも、質感の良いティーポットが見えないのはなぜですか? 法線と vt 座標を取得した後、新しい f 属性を VOB に送信する準備をしなければならないということですか?

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

unity3d - Unity を使用して平面からオブジェクトにテクスチャを投影する

レイキャストを使用して、平面から壁にテクスチャを投影しようとしています。これはリアルタイムで発生するはずです。平面は壁よりも大きいため、テクスチャの一部のみが壁の前面に表示されるはずです。そのため、平面を移動すると、壁のテクスチャの部分も変化します。壁には窓などを付けることができるので単なる立方体ではありません。レイキャストを使用してテクスチャ座標を取得することはできましたが、テクスチャを壁に正しく配置することはまだできていません。これを達成する方法はありますか?

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

c++ - クワッドでテクスチャをレンダリングできません

グラフィックに OpenGL を使用して C++ で簡単なゲームをプログラミングしようとしています。私のゲームでは、画面上に白い正方形としてレンダリングされるオブジェクトがあります。白い正方形の代わりに画面上に画像をレンダリングできるように、画像をテクスチャとしてこれらのオブジェクトにバインドできるようにしたいと考えています。テスト用に .png または .bmp を使用していますが、画像の形式に制限はありません。

私のオブジェクト クラスの 1 つである Character.h は、_texture という名前の GLuint* メンバー変数と _data という名前の unsigned char* メンバー変数を (それぞれイメージ ハンドルとピクセル データとして) 格納します。Character.h 内には、画像をテクスチャとして Character オブジェクトにバインドするための関数があります。

画像がバインドされたら、この関数 (別のクラスにある静的関数) を使用して Character オブジェクトをレンダリングしようとします。

これをどれだけいじっても、テクスチャのない真っ白な正方形をレンダリングする以外に、プログラムに何かをさせることはできないようです。変数ファイル、_texture、_dimension、_data のすべてに値が含まれていることを確認しました。誰かが私が間違っているかもしれないことを見つけることができますか?

0 投票する
0 に答える
360 参照

opengl - OpenGL 4.3 - CubeMap は GL_TEXTURE_2D としてバインドされている場合にのみ機能します。

オープンGLでスカイボックスを実装しようとしています. GL_TEXTURE_2D としてバインドしないと動作しません

これは、キューブ マップをロードする方法です。

以下のスニペットでは、テクスチャをキューブ マップとしてバインドしています。これは動作しません!黒い四角が表示されます。ただし、GL_TEXTURE_2D にバインドすると、テクスチャ付きの立方体 (?) が得られます。

私の素材のレンダリング:

私の頂点シェーダー:

フラグメント シェーダー:

私はOpenGlの初心者です。これはおそらくフラグの問題ですか?

これらは、最初に設定した 3 つのフラグのみです。

ここで何をすべきか本当にわかりません。これは私には非常にあいまいに思えます。ありがとう!マルク