問題タブ [webgl]

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 投票する
2 に答える
3552 参照

javascript - WebGL Javascript が機能しない :(

円柱を描こうとしていますが、うまくいきません:(

手伝ってくれますか?

http://www.nextlevelgeek.com/CylinderWebGL.zip

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

javascript - WebGLシェーダー作成の問題

WebGlとJavaScriptで簡単なアプリケーションを作成しようとしていますが、インターネットで見つけたチュートリアルをいくつか許可しているときに、基本的なシェーダーを作成しているときに奇妙な問題に遭遇しました。シェーダープログラムを作成する関数は次のようになります。

そして、2つのシェーダーは次のようになります。

奇妙なことに、最初のVertex Shaderは正常にコンパイルされますが、フラグメントシェーダーの場合、「this.gl.compileShader(tempFrag);」でクラッシュします。行と私は理由を理解することはできません。

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

textures - WebGL:頂点シェーダーでのテクスチャアクセス?

WebGLを使用して頂点シェーダーのテクスチャから読み取ることは可能ですか?

私はWebGLページを作成し(試してみるためだけに)、Chrome7を使用してテストしました。Chrome 8にアップグレードするとすぐに、動作しなくなりました。webglが有効になっていることを再確認しました。エラーは次のとおりです。

'texture2D':一致するオーバーロードされた関数が見つかりません

texture2Dの呼び出しを定数に置き換えると、機能します。同じテクスチャを使用するフラグメントシェーダーでのテクスチャアクセスも機能します。

誰かアイデアはありますか?Chromeをアップグレードすると壊れてしまったという事実に特に驚かされます。

更新: Firefox4ベータ版で動作します。Chromeのバグを報告しました-問題65340

アップデート2: FirefoxとChromeで動作するようになりました

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

shader - WebGlユニフォームの戻り値

WebGlで単純な3Dアプリケーションを作成しようとしています。このアプリケーションでは、描画されるすべてのオブジェクトに独自のシェーダーがアタッチされています。しかし、Firefoxでは奇妙な問題があり(Chromeではこれは完全に機能します)、各シェーダーの各マトリックス/サンプラーの均一な場所が適切に保存されません。つまり、現在のシェーダーを変更するたびに、シェーダーが使用するすべてのマトリックスに対してgetUniformLocationを呼び出す必要がありますが、これは少し無駄に思えます。

上記のコードは、シェーダーを作成し、複数のオブジェクトで使用するために保存する場所です。tmpシェーダーオブジェクトの参照が正しく保存および変更されていることはわかっています。これらのコード行のすぐ上で、すべての属性の場所を同様の方法で保存し、「現在のシェーダー」を変更するたびにリセットする必要がないためです。 。

私が言ったように、これはFirefoxでのみ機能するわけではないので、FirefoxとChromeは同じ場所を異なる方法で保存していると思います。フレームごとに値を「再取得」する必要がなく、両方のブラウザで機能するようにこれらの値を保存する別の方法を知っている人はいますか?

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

documentation - 誰かが私がいくつかの良いWebGLドキュメントを見つけることができる場所を知っていますか?

私はOpenGLまたはOpenGLESのまったく経験のないWebGLを学ぼうとしていますが、すべての関数呼び出しの背後で何が起こっているのか、より正確にはGPUで何が起こっているのかを理解するのに非常に苦労しています。私はいくつかの基本的なチュートリアルに従ってみましたが、その目的のためにそれらは機能しますが、WebGLでもっと複雑なことをしようとすると、奇妙な問題が発生することがよくあります。シェーダーをリンクする必要がある場合のように、1つのテクスチャに対してtexImage2Dを2回呼び出すとどうなりますか。

私はインターネットで高低を検索しましたが、情報はせいぜい不足しています。これは主に、まだ開発中であり、サポートしているブラウザがほとんどないためです。また、完全なドキュメントがない場合は、OpenGL ESと同様に、参照用にそれを信頼できますか?

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

transparency - WebGLトランスペアレントブラック

WebGLでブレンディングを実行しようとすると、理解できないという奇妙な問題があります。黒は完全に透明にレンダリングされ、グレーの色合いが含まれるすべてのものも半透明にレンダリングされます。透明度のソースとしてアルファチャネルを使用するように設定しましたが、いくつかの点で機能します。アルファ値を変更すると、黒/グレー以外のすべてのレンダリングが異なります。ただし、アルファを1に設定しても、黒は透明に表示されます。

これが私が透明性を有効にする方法です:

そして、透明度を行うシェーダーの部分:

ここで、texColorはサンプリングされているテクスチャカラー、vLightWeightは頂点シェーダーで計算されているシャドウイング、uAlphaは透明度に使用するユニフォームです。

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

webgl - WebGl でブレンドを行う適切な方法

WebGL でブレンディングを行うときに、いくつかの問題があります。そのうちの 1 つは、ブレンドがオンのときにアルファ値に関係なく色がレンダリングされる方法です。つまり、アルファが 1.0 に設定されている場合でも、暗い色は常に下にあるものとブレンドされます。はい、明るい色ほどアルファ値によって表現が異なるので、シェーダーの設定に問題はないと思います。

繰り返しになりますが、まだ完全なシーンをレンダリングする機会がありません。現在、WebGl でのテストのみを行っているため、デフォルトの背景の上に単純なオブジェクトのみを描画します。オブジェクトを使用して画面のすべてのビットをレンダリングすると、これらのブレンディングの問題は「修正」されますか? それとも、これは WebGL の制限ですか?

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

javascript - スタンドアロンの webGL/Javascript クライアント?

webGL を使用する Javascript アプリケーションを作成する可能性を検討しています。

webGL はいくつかのブラウザーでしか利用できないため、ユーザーに特定のブラウザーを (直接) 使用することを強制したくないため、スタンドアロン アプリ クライアントのダウンロードも提供したいと考えています。

私のアプリが Linux と Windows の両方に埋め込まれた、ボーダレスでスタンドアロンの「偽のブラウザ」クライアントをどうにかして作成することは可能でしょうか?

これにより、アプリケーション コードを変更せずにスタンドアロン クライアントを配布できます。

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

opengl-es - 意外な伸びのある質感

次のコードスニペットがあります。

私のテクスチャのサイズは256x256です

オプション1-私のポリゴン

結果:テクスチャが引き伸ばされるため、ディテールが失われます。

オプション2-私のポリゴン(これはオプション1よりもはるかに小さいポリゴンであることに注意してください)

結果:テクスチャの詳細を確認できます。

私の理解では、REPEAT(TEXTURE_WRAP_SおよびTEXTURE_WRAP_T)オプションは、オプション1でも詳細を表示します。オプション1でテクスチャが引き伸ばされるのはなぜですか?誤解しましたか?

これは、ChromeCanaryビルドでWebGLを実行しています。

私は何を間違えましたか?

よろしくお願いします。

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

webgl - フロントエンドとしてJavascript/WebGLでMMOを作ることは可能でしょうか?

理論的には、Javascript/WebGL を使用して MMO を作成する際の問題点は何ですか? また、一般的に、そのバックエンド/サーバー アーキテクチャを構築するには、どのサーバー言語を学ぶ必要がありますか?