Gras Shader Problem gelöst
This commit is contained in:
@@ -419,8 +419,8 @@ public class GrassVertexRenderState extends BaseAppState
|
||||
|
||||
// ── Mesh-Logik (gespiegelt zu GrassVertexState) ───────────────────────────
|
||||
|
||||
private static void buildTuft(float[] pos, float[] nrm, float[] col, float[] tex, int[] idx,
|
||||
int vi, int ii, GrassVertexBlade blade) {
|
||||
private static void buildTuft(float[] pos, float[] nrm, float[] col, float[] tex,
|
||||
int[] idx, int vi, int ii, GrassVertexBlade blade) {
|
||||
float x = blade.x(), y = blade.y(), z = blade.z(), h = blade.height();
|
||||
float baseHW = h * WIDTH_FACTOR * 0.5f;
|
||||
float tAngle = (float) (((x * 127.1f + z * 311.7f) % (Math.PI * 2) + Math.PI * 2) % (Math.PI * 2));
|
||||
@@ -481,8 +481,9 @@ public class GrassVertexRenderState extends BaseAppState
|
||||
|
||||
int svi = bladeVi + s * 2;
|
||||
float dry = blade.dryness();
|
||||
setV(pos, nrm, col, tex, svi, spX - cosA * hw, spY, spZ - sinA * hw, nx, ny, nz, t, dry);
|
||||
setV(pos, nrm, col, tex, svi+1, spX + cosA * hw, spY, spZ + sinA * hw, nx, ny, nz, t, dry);
|
||||
float bladePhase = hash(bx, bz) * 6.2832f;
|
||||
setV(pos, nrm, col, tex, svi, spX - cosA * hw, spY, spZ - sinA * hw, nx, ny, nz, t, bladePhase, dry);
|
||||
setV(pos, nrm, col, tex, svi+1, spX + cosA * hw, spY, spZ + sinA * hw, nx, ny, nz, t, bladePhase, dry);
|
||||
|
||||
if (s < SEGMENTS) {
|
||||
int sii = bladeIi + s * 6;
|
||||
@@ -505,7 +506,7 @@ public class GrassVertexRenderState extends BaseAppState
|
||||
|
||||
private static void setV(float[] pos, float[] nrm, float[] col, float[] tex, int vi,
|
||||
float x, float y, float z, float nx, float ny, float nz,
|
||||
float wf, float dryness) {
|
||||
float wf, float bladePhase, float dryness) {
|
||||
int pi = vi * 3;
|
||||
pos[pi] = x; pos[pi+1] = y; pos[pi+2] = z;
|
||||
|
||||
@@ -538,7 +539,7 @@ public class GrassVertexRenderState extends BaseAppState
|
||||
col[ci] = fr; col[ci+1] = fg; col[ci+2] = fb; col[ci+3] = 1f;
|
||||
|
||||
int ti = vi * 2;
|
||||
tex[ti] = wf; tex[ti+1] = 0f;
|
||||
tex[ti] = wf; tex[ti+1] = bladePhase;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user