Work in progress projector fixes

This commit is contained in:
Jackson Abney
2024-05-25 19:46:23 -08:00
parent 06f18420dc
commit ea5ae89636
2 changed files with 33 additions and 5 deletions

View File

@@ -77,11 +77,12 @@ public final class ProjectorDepthRenderer {
private static final float PROJECTOR_FAR = ProjectorBlockEntity.MAX_RENDER_DISTANCE;
private static final int HALF_FRUSTUM_WIDTH = (ProjectorBlockEntity.MAX_WIDTH - 1) / 2;
private static final int FRUSTUM_HEIGHT = ProjectorBlockEntity.MAX_HEIGHT - 1;
private static final Matrix4f DEPTH_CAMERA_PROJECTION_MATRIX = getFrustumMatrix(
private static final Matrix4f DEPTH_CAMERA_PROJECTION_MATRIX = (new Matrix4f()).setFrustum(-HALF_FRUSTUM_WIDTH*2, HALF_FRUSTUM_WIDTH*2, FRUSTUM_HEIGHT, -FRUSTUM_HEIGHT, PROJECTOR_NEAR, PROJECTOR_FAR);
/*getFrustumMatrix(
PROJECTOR_NEAR, PROJECTOR_FAR,
ProjectorBlockEntity.MAX_GOOD_RENDER_DISTANCE,
-HALF_FRUSTUM_WIDTH, HALF_FRUSTUM_WIDTH,
FRUSTUM_HEIGHT, 0);
FRUSTUM_HEIGHT, 0);*/
private static final Cache<ProjectorBlockEntity, RenderInfo> RENDER_INFO = CacheBuilder.newBuilder()
.expireAfterAccess(Duration.ofSeconds(5))
@@ -412,14 +413,18 @@ public final class ProjectorDepthRenderer {
private static void prepareOrthographicRendering(final Minecraft minecraft) {
float f = 3000 - 1000;
final Matrix4f screenProjectionMatrix = new Matrix4f(2.0F / minecraft.getWindow().getWidth(), 0f, 0f, -1f, 0f, 2.0f / -minecraft.getWindow().getHeight(), 0f, 1f, 0f, 0f, -2.0f / f, -(3000 + 1000) / f, 0f, 0f, 0f, 1f);
/*new Matrix4f().orthoSymmetric(
final Matrix4f screenProjectionMatrix = (new Matrix4f()).setOrtho(0f, minecraft.getWindow().getWidth(), minecraft.getWindow().getHeight(), 0f, 1000, 3000);
// new Matrix4f(2.0F / minecraft.getWindow().getWidth(), 0f, 0f, -1f, 0f, 2.0f / -minecraft.getWindow().getHeight(), 0f, 1f, 0f, 0f, -2.0f / f, -(3000 + 1000) / f, 0f, 0f, 0f, 1f);
/*new Matrix4f().orthoSymmetric(
minecraft.getWindow().getWidth(),
-minecraft.getWindow().getHeight(),
0, 5000
);*/
RenderSystem.setProjectionMatrix(screenProjectionMatrix, VertexSorting.DISTANCE_TO_ORIGIN);
//screenProjectionMatrix.reflect(new Vector3f(), new Vector3f());
RenderSystem.setProjectionMatrix(screenProjectionMatrix, VertexSorting.ORTHOGRAPHIC_Z);
final PoseStack modelViewStack = RenderSystem.getModelViewStack();
modelViewStack.setIdentity();

View File

@@ -1,5 +1,9 @@
package li.cil.oc2.common.item;
import li.cil.oc2.common.util.TextFormatUtils;
import net.minecraft.network.chat.Component;
import net.minecraft.world.item.ItemStack;
public class CPUItem extends ModItem {
private final int frequency;
@@ -13,4 +17,23 @@ public class CPUItem extends ModItem {
{
return frequency;
}
public String getFrequencyString()
{
StringBuilder builder = new StringBuilder();
builder.append(frequency/1_000_000);
builder.append(" MHz");
return builder.toString();
}
@Override
public Component getName(final ItemStack stack) {
return Component.literal("")
.append(super.getName(stack))
.append(" (")
.append(getFrequencyString())
.append(")");
}
}