問題タブ [lighting]

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 に答える
354 参照

java - JOGLでCADプログラムを作成しました。これは、glu quadricを入力するまではうまく機能し、その後、照明がオフになります。

CADソフトウェア(Protocase Designer)を作成しましたが、うまく機能していました。常にクラッシュするATIカードを除きます。ディスプレイリストは非推奨であり、ATIカードがそれらを完全にサポートしていない可能性があるという理論に基づいて、ディスプレイリストを頂点バッファオブジェクトに置き換えることにしました。私はそれをほとんど機能させていますが、次のコードを入力すると、何らかの理由で照明がすべて台無しになります。誰もが理由を知っていますか?頂点バッファオブジェクトのレンダリングの前または後にコードを配置するかどうかは関係ありません。

なぜ何かアイデアはありますか?これは、ディスプレイリストのバージョンを台無しにすることはありませんでした。私がレンダリングしているのは、gluのテッセレーターを使用した穴のあるエンクロージャーです。

ありがとうございました!

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

opengl - GLSL シェーダー + ライティング / 法線の使用

私はこれほど小さくはないタイルベースのゲームを手に入れました。これは私の最初の実際の OpenGL プロジェクトです。すべてのタイルを 3D オブジェクトとしてレンダリングしたいと考えています。最初に、立方体や球体などのオブジェクトをいくつか作成し、それらに頂点法線を指定して、フラット シェーディングのイミディエイト モードでレンダリングしました。しかし、レベルごとに 10,000 個のオブジェクトがあるため、少し遅くなりました。そこで、頂点と法線を VBO に入れました。

ここで最初の問題に遭遇しました。VBO を使用する前に、すべてのオブジェクトのマトリックスを編集して編集し、/ を使用push()してそれらをシーンに配置しました。しかし、VBO で同じことを行ったところ、照明の動作がおかしくなり始めました。カメラの後ろに固定された照明の位置ではなく、照明がオブジェクトと一緒に回転するように見えました。それらを 180 度回転すると、影しか見えませんでした。pop()glTranslateglRotate

だから私はいくつかの研究をしました。私は特定の問題に対する答えを見つけることができませんでしたが、glTranslate/を使用する代わりに、glRotateシェーダーを実装して均一なマトリックスを提供する必要があることを読みました。

私は「おそらく私の問題も解決できるだろう」と考え、詳細に集中する前にシェーダーが機能するかどうかを確認するために、オブジェクトを少しだけ引き伸ばす最初の小さな頂点シェーダー プログラムを実装しました。

オブジェクトが引き伸ばされますが、OpenGL のフラット シェーディングが壊れています。私はちょうど白い色合いを取得します。そして、私は有益な情報を見つけることができません。だから私はいくつかの質問を得ました:

  • 一度に 1 つのシェーダーしか使用できません。独自のシェーダーを使用する場合、OpenGL のフラット シェーディングはオフになりますか? では、フラット シェーディングを自分で実装する必要がありますか?

  • 私のベクトル法線はどうですか?正規行列のようなものがあるとどこかで読みました。おそらく、頂点を変更するときに、法線にも操作を適用する必要がありますか?

0 投票する
3 に答える
2935 参照

opengl - GLSL固定機能フラグメントプログラムの置き換え

頂点のセットアップにOpenGL固定関数パイプラインを使用する場合、フラグメントプログラムは、固定関数の頂点セットアップとどのように互換性がありますか?これは通常、光源やテクスチャレイヤーの数などに依存すると思います。たとえば、単純な非テクスチャ1光源のゴローシェーディングフラグメントプログラムは、GLの固定関数シェーダーに代わるものとしてどのように見えるのでしょうか。

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

opengl - 静的ジオメトリのグローバル イルミネーション

私は、できれば OpenGL または GPGPU に基づいて、静的オブジェクトと動的光源 (都市モデル) を持つ屋外シーンを照らすための適切なグローバル イルミネーション手法を見つけようとしています。非常に詳細または正確である必要はありませんが、かなり単純で、可能であれば反復的で洗練されている必要があります (中間結果を表示できるようにするため)。

インターネットで見つけたベスト マッチは、レイ トレーシング、事前計算されたラディアンス トランスファー (PRT)、およびラジオシティです。

レイ トレーシングは、私のアプリケーションには遅すぎます。PRT は複雑すぎるようで、事前計算のステップが膨大で、ラジオシティは遅すぎるようで、マルチスレッドで実装できるかどうかはわかりません。

上記の問題のより良いテクニック、または回避策を知っている人はいますか?

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

opengl - openglのライトでオブジェクトを回転させる方法

私のコードでは、オブジェクトに応じて照明を調整できないため、移動するオブジェクトに照明を固定することはできません。オブジェクトと一緒にライトを動かすにはどうすればよいですか

私は0,0、-15の位置にあるオブジェクトを持っており、上下左右のボタンを押すと、このオブジェクトは子羊のオブジェクトであるライトと一緒に移動します。それでも、light(lamb object)を0,0、-15の位置に置き、move_xとmove_zの座標をライトの位置として指定しましたが、ライトは別の場所に表示され、オブジェクトとリンクせずに移動しています。これは私のコードです:

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

java - Java/lwjglでのOpenGLライティングの問題

Java/lwjglで回転する立方体のシーンを作成しました。ライティングを有効にすると、光源をどこに配置しても、光源がカメラの位置にあるかのようにリアルな動作が得られます。

これがopenGLを初期化する私の方法です:

このコードでは、レンダリングを開始すると次のように呼び出されます。

そして、これは立方体を描画します。法線は正しいと思います。法線を逆にすると、少なくとも私のテストでは、顔が描画されなくなります。

照明の問題は何ですか?

編集:エラーに関する追加情報

ライト位置配列の最後の値を0に設定すると、シーン全体が黒になります。他の値に設定すると、説明されているように、ライトがビューポートから出てきます。周囲光は何も変化しません。光源が機能していないとき、描画したい立方体は暗いままです。コード内の他の位置、たとえば行の直後GLU.gluPerspective(70, 4f / 3f, 1, 10000);やループに照明を配置しようとしましたが、説明されている効果は変更されていません。

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

c# - XNA - 3D ゲーム - すべてのモデルにライトを適用する

3D グラフィックスを使用した XNA ゲームを作成したいのですが、疑問に思っていることが 1 つあります。シーンに10 個Modelの s があり、それらすべてをディレクショナル ライトのような同じ光源で描画したいとします。これで、 には があり、 には照明情報があることModelがわかりました。私の質問は、各モデルが独自の光源を持つのではなく、シーン内のすべてのモデルに同じ光源を適用するにはどうすればよいですか? 私がベースから外れているかどうか誰か教えてください。EffectEffect

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

c++ - OpenGL - 光の値と位置

これは、私が自分の光の値とその位置を宣言した方法です

これは正しいですか、それとももっと公式な方法がありますか?

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

graphics - グラフィックス パイプラインでのフラット シェーディング

私は、3D ライティングのフラット シェーディング モデルを分析し、「グラフィックス パイプラインに統合する方法について議論する」よう依頼されました。

ここに画像の説明を入力

フラット シェーディングは 1 面につき 1 回適用されるため、ライトが計算される適切な場所はフラグメント計算の段階であると考えていました。しかし、私も完全に間違っているかもしれません...

誰かが私を正しい方向に向けることができますか?

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

opengl - Opengl: opengl で照明の方向ベクトルを指定するにはどうすればよいですか?

これは私にはまったく意味がありませんが、とにかく、これがあるとしましょう:

何だと思う?光線は、私が望むように下ではなく、上を指します。非常に直感的ではありません。なぜopenglの設計者はこれを行うことにしたのですか?