Update changelog and remove dead QuaternionTransformStack.java

This commit is contained in:
Jozufozu 2021-07-30 14:34:04 -07:00
parent 0183451a06
commit a5850a46c8
2 changed files with 27 additions and 95 deletions

View File

@ -1,3 +1,30 @@
0.2.0:
New
- Flywheel driven shulker box rendering
- Optimize chunk accesses by caching previous result
- Further optimize flywheel rendered objects through parallel updates
Changes
- Distant objects are update throttled according to the sequence of prime numbers, smoothing out updates
- Rename normalOverlay to debugNormals, make naming consistent across command and config
Fixes
- Fix issue causing modded banner patterns to all have missing textures
Technical/API
- Reorganize, simplify, and document everything in the MaterialManager tree
- MaterialManagers associate RenderStates with MaterialGroups
- Proper support for rendering in different layers (SOLID, CUTOUT, and TRANSPARENT)
- New methods in MaterialManager to accommodate these changes
- Deprecate old functions in MaterialManager in favor of new ones using MaterialGroups
- InstanceDatas can be transferred to other Instancers via "instance stealing"
- Abstraction for models, IModel
- Easier to use, and gives Flywheel more freedom to optimize
- Buffered models directly consume IModels
- Added BlockModel, renders a single block
- Added WorldModel, renders many blocks given a world instance
- Cuboids can be inverted across Y and Z, used by many vanilla models for some reason
- TransformStack scaling
- VecBuffer coloring
- Add more information to RenderLayerEvent and BeginFrameEvent
0.1.1:
New
- Flywheel driven chest and bell rendering, ~20x performance improvement in contrived cases

View File

@ -1,95 +0,0 @@
package com.jozufozu.flywheel.util.transform;
import java.util.ArrayDeque;
import java.util.Deque;
import net.minecraft.util.math.vector.Quaternion;
public class QuaternionTransformStack implements TransformStack {
private final Deque<Transform> stack;
public QuaternionTransformStack() {
stack = new ArrayDeque<>();
stack.add(new Transform());
}
@Override
public TransformStack translate(double x, double y, double z) {
Transform peek = stack.peek();
double qx = peek.qx;
double qy = peek.qy;
double qz = peek.qz;
double qw = peek.qw;
peek.x += qw * x + qy * z - qz * y;
peek.y += qw * y - qx * z + qz * x;
peek.z += qw * z + qx * y - qy * x;
return this;
}
@Override
public TransformStack multiply(Quaternion quaternion) {
return this;
}
@Override
public TransformStack push() {
stack.push(stack.peek().copy());
return this;
}
@Override
public TransformStack scale(float factor) {
return this;
}
@Override
public TransformStack pop() {
if (stack.size() == 1) {
stack.peek().loadIdentity();
} else {
stack.pop();
}
return this;
}
private static class Transform {
public double qx;
public double qy;
public double qz;
public double qw;
public double x;
public double y;
public double z;
public Transform() {
qw = 1.0;
}
public void loadIdentity() {
x = y = z = 0.0;
qx = qy = qz = 0.0;
qw = 1.0;
}
public Transform copy() {
Transform transform = new Transform();
transform.qx = this.qx;
transform.qy = this.qy;
transform.qz = this.qz;
transform.qw = this.qw;
transform.x = this.x;
transform.y = this.y;
transform.z = this.z;
return transform;
}
}
}