【发布时间】:2016-10-13 17:29:52
【问题描述】:
我为我的一些无知道歉,因为我对 Slick2D 和 LWJGL 还很陌生。本质上,我想要做的是让场景看起来像夜间,用一个蓝色半透明的 GL_QUADS 矩形覆盖它。
这部分很简单。我想从那里做的是在这个层中绘制三角形,从而改变 alpha 通道。我想这样做的原因是,我可以通过在靠近光源时降低蓝色矩形的不透明度来模拟光源。
我画了一个例子来说明预期的结果应该是什么,绿色是背景,蓝色是由蓝色矩形创建的夜间效果,中心的光源越来越暗。
我需要找到一种方法来处理三角形,因为我创建了一个光线投射算法,该算法将结果生成为一系列渐变三角形。
如果解释不当,我深表歉意。我会回答你可能有的任何问题。
这是用于创建蓝色矩形的代码块:
glColor4f (0.0f,0.0f,1.0f,0.4f);
glBegin(GL_QUADS);
glVertex2f(0,0);
glVertex2f(screenWidth,0);
glVertex2f(screenWidth,screenHeight);
glVertex2f(0,screenHeight);
glEnd();
我想编写以下代码的修改版本来调整该矩形的 Alpha 通道。
glBegin(GL_TRIANGLES);
setAlphaOfPriorLayer(0.0f);
glVertex2f(x1,y1);
setAlphaOfPriorLayer(0.4f);
glVertex2f(x2,y2);
setAlphaOfPriorLayer(0.4f);
glVertex2f(x3,y3);
glEnd();
再次,我使用三角形来近似圆形并允许适当的光线投射。
【问题讨论】:
标签: java opengl lwjgl alpha slick2d