我正在尝试使用以下代码在我的 2D 游戏中创建聚光灯
float[] ambient = {0.1f, 1, 1, 1};
float[] position = {45, 20, 0, 1};
float[] direction = {0, -1, 0};
gl.glEnable(GL10.GL_LIGHT1);
gl.glLightfv(GL10.GL_LIGHT1, GL10.GL_AMBIENT, ambient, 0 );
gl.glLightfv(GL10.GL_LIGHT1, GL10.GL_POSITION, position, 0);
gl.glLightfv(GL10.GL_LIGHT1, GL10.GL_SPOT_DIRECTION, direction, 0);
gl.glLightf(GL10.GL_LIGHT1, GL10.GL_SPOT_CUTOFF, 30.0f);
一般来说,该点正在工作,但我不能移动它,也不能改变方向和截止。当我更改位置向量时,它会保持在同一位置或完全消失。方向和截止也是如此。它总是以 45 度角向左/向上发光。当我将 GL_AMBIENT 更改为 GL_DIFFUSE 或 GL_SPECULAR 时,灯光也会消失。我唯一能改变的是光的颜色。
我究竟做错了什么?