問題タブ [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.
opengl - 3Dシェーディング/ライティングは、アンビエントシェーディングされた側面で失われます
3Dゲームでシェーディングをどのように処理しますか?立方体でできた木の片側を覆う指向性光源があります。残りの3つの側面はすべて、アンビエントシェーディングのみを取得します。したがって、2つの周囲の影付きの側面を見ると、3D効果が失われます。私は何かが足りないのですか?光源から最も遠い側をさらに暗くする必要がありますか?私はFallout3を見てみましたが、これは彼らがやっていることのように見えますが、Minecraftは、2つの反対側が明るい草の塚を覆い、残りの2つの反対側が暗いように見えます。影付きの側面と暗い影付きの側面の周囲光。
java - Java3d ライティングの問題
20年以上コーディングしています。私は Java3d を初めて使用しますが、非常に感銘を受けました。保持モードは、直接モードよりもはるかに簡単です!
とにかく、照明に問題があります。独自のジオメトリを作成すると、照明が機能しません。java3d ユーティリティ (Sphere() など) によって作成されたジオメトリを使用すると、照明は正常に機能します。私が見ている問題は、オブジェクトがどの角度から見ても白いことです。アンビエント ライトとディレクショナル ライトを追加しようとしましたが、オブジェクトは常に白です。
ドキュメントによると、照明を使用したい場合、オブジェクトに色の外観属性を指定することは想定されていませんが、それを行っていません。また、法線を提供する必要があるとも書かれており、それを実行しています。手で法線を作成することと、NormalGenerator を使用することの両方を試みました。Java3d 1.5.1 とプレリリース 1.6.0 を試しましたが、成功しませんでした。Windows 7 64 ビットで Java 1.6.0_18 を使用しています。
このコードにはたいしたことはありません。問題は本当に基本的なものでなければなりませんが、私にはわかりません。ライティングが機能しない 2 つのジオメトリ作成関数をここに貼り付けました。見て、私が間違っていることを教えてください:
jquery - JQuery.SVG による透明効果
優れた Jquery.SVG を使用して svg パスを描画しました (ドキュメントの方が優れている可能性があります)。
すべて正常に動作します。しかし、私はもっと凝ったことをしようとしています。
色付きの長方形があり、specularLighting を使用して強調表示したいと思います。
私は次のようなコードを考えていました:
$('#path-svg-id','#divid').filters.specularLighting(filter, 'specOut', 'blur', 5, 0.75, 20, {lightingColor: '#bbbbbb'});
しかし、うまくいきません。何か案は?
iphone - iPhone OpenGL-ES : 光源の動きを止める
私は照明ガイドに従って、回転する立方体の光源を設定しました (3 軸でのユーザー操作による回転)。
しかし、何をしても光源を正しい位置に保つことができず、立方体と一緒に回転しているように見えます。したがって、立方体を回転させると、一部が点灯し、一部が点灯しません。
私はかなりの行列操作を行っています。マトリックスをリセットしてから光源を適用してglLoadIdentity()
、ビューをリセットしようとしました。
じっとしていられないようです。
opengl-es - OpenGL ES 1.1は、vertexColorsとlightingの両方を持つことができますか?
頂点カラーを使用するメッシュがあり、GL_LIGHTINGを有効にすると、頂点カラーは無視され、計算されたライティングに置き換えられます。
OpenGL ES 1.1に、頂点の色と動的な照明の両方を同時に持つ方法はありますか?
ありがとう!
opengl - GLSLシェーディングの問題:球が赤ではなくグレースケールになっているのはなぜですか?(コードを参照)
私は初心者レベルのGLSLシェーダープログラムに取り組んでいます。私はこのチュートリアルに従っています。しかし、私の球は常にグレースケールで表示され、予想どおりに赤に着色されていません。
頂点シェーダー:
Frag Shader:
コードは、チュートリアルをコピーして貼り付けるだけです。
フラグシェーダーから、拡散反射光の色は赤ですが、私の球はグレースケールです。ただし、フラグシェーダーのコードを取り出して次のコードを使用すると、シェーダーが正しく読み込まれることがわかります。
gl_FragColor = vec4(0.0,1.0,0.0,1.0);
その後、私の球は予想通り緑色に点灯します。競合を引き起こしているのがopenGLコード(Renderer.cppなど)にあるのか、それとも他に何か問題があるのかはわかりません。
GLSLでのコーディングはこれが初めてであり、シェーダーが正しく機能するためにどのgl_Enableをオン/オフにする必要があるかについてかなり混乱しています。
フィードバックをありがとう!
編集: わかりました。レンダリングする前にglColor3fを呼び出すと、正しい色を取得できます。しかし、光の色が球の色の変化を直接もたらすのではないでしょうか?シェーダーの関数を実際に呼び出していないのではないかと心配しています...
EDIT2: 頂点シェーダーまたはフラグシェーダー(gl_Color = ...以外)にコードを入れると、取得した単色が消えてしまうことがわかりました...これは、シェーダーにひどい問題があることを意味していると思います?
EDIT3: これが私のシェーダーをセットアップするためのコードです(私のTAによって提供されます):
EDIT4:kvark によって提案されたシェーダーログを使用して、シェーダーのバグを修正することができました(いくつかの間違いがあったことがわかりました)。最終的なコードを見たい場合は、コメントを残すか、私にメッセージを送ってください(この質問は長くなっています)。
c++ - 固定関数レンダリングパイプラインを使用したDirectX9の頂点ごとの事前計算されたライティング
固定関数パイプラインを使用してDirectX9C ++アプリケーションを作成していますが、各頂点に事前に計算された照明が与えられています(法線などに関係なく)これを最終的な画像に適用するにはどうすればよいですか?
現在、テクスチャプリミティブを使用しており、全体として(グラデーションを使用するのではなく、プリミティブ全体で)色を変更しようとしています。ライトの数とアプリケーションが設計されているため、ライティングを事前に計算する必要があります。ローエンドのマシンでも適切なフレームレートを取得します。(つまり、ライトごとに1つのパスが多すぎます)
私の頂点構造体は次のようになります
基本的に、それにライティング値を追加し、頂点ごとの固定関数パイプラインを使用して(実際の「ライト」を使用せずに)適用したいと思います。
どんな助けでも大歓迎です...
c++ - 一部のシェーダー コードでのアンビエント ライティング
これは、文字列としてプログラムに供給される私のシェーダー コードであり、基本的にローカル ライトで立方体を表示するだけです。
キューブ全体 (およびシーン内のその他すべて) を照らすために、このコードを使用してアンビエント ライティングを実装する方法を知る必要があります。
これは openGL フレームワークに基づいており、表示されるものはすべてこのコードの影響を受けます... はい、宿題です!!
iphone - Cocos2d&Box2dの動的な照明と影
iPhoneアプリの作成を始めたいと思っていますが、Cocos2d/Box2Dコンボを使用して動的な照明/影を作成できるかどうか疑問に思っていました。私は以前にこれらを扱ったことがあり、一緒にいたいと思っています。プレイヤーが動き回るにつれて、照明が動的に更新されるようにしたいと思います。
望ましい効果の例は次のとおりです。
http://blog.flash-core.com/?p=135にあります
ありがとう、
アンディ
c++ - openGL照明はカメラと一緒に回転します
大学の授業用に簡単なものを作ろうとしていて、それを照らそうとしましたが、ライトがカメラと一緒に回転しているように見えて、まったく面倒です...
(ページが引き伸ばされないように)ペーストビンを使用して以下にコードを貼り付けましたが、ここにも少し説明があります。
Display::Init にライトを追加しました (PoolLight クラスを使用)。カメラは Display::Resize で設定されます。これは「ビリヤード台」の上 (0, 0, 80) に配置され、下を向いて (0, 0, -1)、X 軸は前方/上 (1, 0, 0) です。
カメラのこの単純な動きと回転は、ライトも調整しますが、ジオメトリは調整しません (あるいは、ライトではなくジオメトリを調整するかもしれませんが、よくわかりません)。
ここで同じ問題に関する他の回答をいくつか読みましたが、よくわかりません。誰かがそれをもっと簡単な言葉で説明してくれることを願っています。あるいは、私が誤って除外した明らかなものを見つけてくれることを願っています。
とにかく、ここにコードがあります:
プールライト クラス: