Refactored CROs and CROCube, Faces.createBlockFace and Camera

- Multiple ChunkRenderOptimizers can now optimize one block if desired
  - CROs require that an interface is implemented, not class extended
- ChunkRenderOptimizerCube has been refactored:
  - Blocks that a not opaque are now optimized
  - Blocks have per-face opacity
  - Blocks can render inner faces
    - Example: test glass
  - Code is now readable
- Faces was rewritten to support flipping
  - .createBlockFace is now readable
- Camera now manipulates coordinate systems in a more obvious way
  - Camera now uses world coordinate system
    - Z is up
    - Yaw 0 looks to the North (+X)
    - Positive pitch is up
  - Improved control code readability somewhat
  - Fixed test UI compass
This commit is contained in:
2020-08-26 01:34:32 +03:00
parent bdb458b911
commit a9896fa3e1
13 changed files with 309 additions and 209 deletions

View File

@@ -3,7 +3,7 @@
varying vec3 varyingNormals;
void applyShading() {
vec3 light = normalize(vec3(0.5, 1.0, 0.2));
vec3 light = normalize(vec3(0.5, -0.2, 1.0));
vec3 normal = varyingNormals;
float angleCos = dot(normal, light);