黒いテクスチャを使用して上に白い円を描く基本的なライトシステムを作成しようとしました。私はこの問題について様々なスレッドを読んだが、私が間違っていることは分かりません。LibGDX - 基本的な2Dライティング、何をするか分からない
は、私が欲しいのは、周囲が暗いことで、光が十分に白色であるが、私は軽いテクスチャー
を描画色をリセットする場合でも、暗くする光の原因となります暗いものにspritebatchの色を変更しますだから、これは(軽いテクスチャーを強制することにより、これをしなかったが、5回を描くが、それが解決策ではありません、それはハックだ)私が欲しいものです:
これは私が(1つだけ光のテクスチャが描画され得るものであるが、はあまり目立たない):
これは私がspritebatchを暗くすることなく、得るものです:
メインコード:
Game.sb.begin();
//Make stuff darker
Game.sb.setColor(0.1f, 0.1f, 0.1f,1f);
sb.setBlendFunction(GL20.GL_SRC_ALPHA, GL20.GL_ONE_MINUS_SRC_ALPHA);
lvl.render();
//Reset color
Game.sb.setColor(1f, 1f, 1f,1f);
sb.setBlendFunction(GL20.GL_DST_COLOR, GL20.GL_SRC_ALPHA);
//This draws all lights by drawing a texture with the above blending function
lightM.render();
Game.sb.end();
ライトオブジェクトのdrawメソッド:
Game.sb.setColor(c.r,c.b,c.g, 1f);
Utils.drawTexture(Assets.get("sprites/lightcircle2.png", Texture.class), pos, size, true);
Game.sb.setColor(1,1,1,1);
私はSETCOLORとエラーのいくつかの種類がいるのでしょうか?私は、フレームバッファを使用して検討されたが、それは私の光効果を与える場合、私は(それのCC0)これは私の軽いテクスチャーであるちなみに私は
をしたいかわからない:
FBOとブレンドを使用しようとすると、GLSLは複雑に思えますが、私はbox2dlightsを使いたくありません。ありがとう! :D –