2016-10-21 4 views
0

私はwebgl 3D sceneとを持っていて、形はtexturesです。
いくつかの線やその他の図形を追加して、テクスチャの形に影響を与えないデフォルトの色を適用したいと思います。
どうすればいいですか?
これは私が今持っているものです:私はCインタフェースによって公開されて呼び出しの面で次のように記述するつもりですwebglの3Dシーンのデフォルトの色

gl.clearColor(0.0, 0.0, 0.0, 0.0); //alpha=0 for background img 
gl.enable(gl.DEPTH_TEST); 
+0

この答えを見つけるかもしれない「私はPIを計算したい、これは私が今持っているものです: 'VARのPI;'」* –

+0

私は、関連する@LJあると思っただけでコードを書きましたᛃ – arii

答えて

1

WebGLは、デフォルトでWebページに合成されます。それは0,0,0,0にクリアすることは、キャンバス自体またはその背後にある要素の標準的なウェブページのCSSの背景色の設定が透明であることを意味します(<body>,>等はそのキャンバスとブレンドされるものです)

あなたは*便利

https://stackoverflow.com/a/39354174/128511

2

(generityのために、仕様自体が完全にGLを省略...前) 。

glClearColorは、glClear(GL_COLOR_BUFFER_BIT | …)のコールでフレームバッファをクリアする色を選択します。 glClearを実行しないと、何の効果もありません。

glEnable(GL_DEPTH_TEST)は、続く描画呼び出しの深度テストを有効にします。

私はこれを行うことができますどのように色 ... デフォルトのいくつかの線やその他の図形を追加し、それらに適用したいですか?

わかりました。

テクスチャの形状には影響しません。

これは、とにかくOpenGLの仕組みです。 OpenGLはシーンを記述しません。 OpenGLは、「現時点で」何が起こっているのかをすべて把握しています。一度に1つずつ点、線または三角形を描画し、唯一の「干渉」はフレームバッファ内のピクセルをオーバードローすることです。

もちろん、グローバルステートマシンでは、状態を変更すると、それ以降のすべてに影響があります。したがって、以前の動作に戻す場合は、行った特定の描画に対して行ったすべての状態の変更を元に戻す必要があります。

関連する問題