Skip to content

Conversation

@imreallybadatnames
Copy link

meow

@BraveCaperCat2
Copy link

build the 1.21.8 version for us who don't know how to build mods
PLEASE!
@imreallybadatnames

@Noaaan
Copy link

Noaaan commented Sep 23, 2025

That isn't really a good idea. As an initial port it still likely needs changes.
Isometric Renders is also built on the Worldmesher library, which needs to be finished and published first before this is mergeable

@BraveCaperCat2
Copy link

That isn't really a good idea. As an initial port it still likely needs changes.

How is anyone going to find out what changes the port needs if you can't test it?

Isometric Renders is also built on the Worldmesher library, which needs to be finished and published first before this is mergeable

Just use the port for that as well.

@imreallybadatnames
Copy link
Author

That isn't really a good idea. As an initial port it still likely needs changes. Isometric Renders is also built on the Worldmesher library, which needs to be finished and published first before this is mergeable

To the extent of my testing, which is testing a bunch of various things for all the /isorender commands and batch render keybind, everything is fully functional. It is an initial port specifically because it needs a code review from an authoritative developer, since I have far less knowledge about how this port should be architected than e.g. glisco or Noaaan.
There will be no further development of this PR besides minor nits and fixes until a code review is submitted. I am currently waiting patiently for one.
The same applies to the Worldmesher port, which arguably needs a code review much more because it has some unported functionality for which I have no concept as a replacement.

@imreallybadatnames
Copy link
Author

This is the main reason why this PR is NOT a draft. Because, functionally, it is more or less done.

@BraveCaperCat2
Copy link

BraveCaperCat2 commented Sep 24, 2025

This is the main reason why this PR is NOT a draft. Because, functionally, it is more or less done.

You know, I was told by a wiki admin (for a minecraft-related wiki) to build the 1.21.8 port of this mod, so that we can update our STFR stabilizer images, among other things. Then I realised that I hadn't built a mod in a long time - and never for 1.21.x or fabric.

So, can you please build the mod for us?

That isn't really a good idea. As an initial port it still likely needs changes. Isometric Renders is also built on the Worldmesher library, which needs to be finished and published first before this is mergeable

To the extent of my testing, which is testing a bunch of various things for all the /isorender commands and batch render keybind, everything is fully functional. It is an initial port specifically because it needs a code review from an authoritative developer, since I have far less knowledge about how this port should be architected than e.g. glisco or Noaaan. There will be no further development of this PR besides minor nits and fixes until a code review is submitted. I am currently waiting patiently for one. The same applies to the Worldmesher port, which arguably needs a code review much more because it has some unported functionality for which I have no concept as a replacement.

Ok.

@imreallybadatnames
Copy link
Author

imreallybadatnames commented Sep 24, 2025

Building this should be as simple as downloading my fork of the repo and running gradlew build in the folder.
If you are sure you are truly unable to build the mod: May I get a contact to send it directly? I'd rather not do it over this GitHub PR.

@BraveCaperCat2
Copy link

BraveCaperCat2 commented Sep 24, 2025

I'm having some issues with the actual renders. They're all completely black.
This is one of them:
area_render

@imreallybadatnames

@imreallybadatnames
Copy link
Author

Note: after extensive communication, I have concluded this to be a mystery issue. As exporting works perfectly fine on various MC setups on my machine, broader investigation is needed.

@BraveCaperCat2
Copy link

Huh

@OpenBagTwo
Copy link

I'm also getting completely black renders for my build off of this branch. For diagnostic purposes: I'm using an AMD 9070XT on Linux (have tried both a Wayland and an X11 environment)

@BraveCaperCat2
Copy link

I'm also getting completely black renders for my build off of this branch. For diagnostic purposes: I'm using an AMD 9070XT on Linux (have tried both a Wayland and an X11 environment)

I'm not sure what that "Wayland/X11" thing is, but I have an intel CPU, Nvidia GPU and am using windows so it's probably not brand specific or anything.

@ByteZ1337
Copy link

ByteZ1337 commented Oct 20, 2025

I'm also getting blank renders. I have the mod set up in Intellij if you need any debug info. I sadly don't have any experience with opengl/blaze3d so that's kinda all I can offer to help.

@imreallybadatnames
Copy link
Author

Exporting simply works on my end, and I couldn't figure out any potential causes, so I just don't know what to tell you.

@ByteZ1337
Copy link

I managed to fix it by adding

RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(framebuffer.getDepthAttachment(), 1.0f);

after the framebuffer init in drawIntoTexture

@OpenBagTwo
Copy link

@ByteZ1337 your fix works when rendering one at a time, but not for batch renders, which results in messes like:

birch_slab

or

end_lotus_hanging_sign

@ByteZ1337
Copy link

ByteZ1337 commented Oct 21, 2025

@OpenBagTwo That works fine for me. I'm guessing these are gpu specific issues. Did you try just clearing the color texture like I did with the depth texture at the same place? Something like

final var framebuffer = new SimpleFramebuffer("Isometric Renders RenderableDispatcher.drawIntoTexture Framebuffer", size, size, true);
final var commandEncoder = RenderSystem.getDevice().createCommandEncoder();
commandEncoder.clearDepthTexture(framebuffer.getDepthAttachment(), 1.0f);
commandEncoder.clearColorTexture(framebuffer.getColorAttachment(), 0x000000);

Edit: I just noticed there's also a clearColorAndDepthTextures method so no need for 2 calls.

@imreallybadatnames
Copy link
Author

I managed to fix it by adding

RenderSystem.getDevice().createCommandEncoder().clearDepthTexture(framebuffer.getDepthAttachment(), 1.0f);

after the framebuffer init in drawIntoTexture

That's interesting, considering that the created depth texture is supposed to be already cleared, which is the case on my machine. I would've never guessed that, especially given how I was not provided with conclusive information on this issue.

@OpenBagTwo
Copy link

@ByteZ1337 That did it! Thanks so much!

@imreallybadatnames
Copy link
Author

I'm guessing that, on other machines, the created textures are not guaranteed to be blank and are instead filled with undefined data. Though fixing this myself is probably a fool's errand considering it just works on my end, and I don't have any other developers knowledgeable in OpenGL helping currently, especially those who can reproduce that issue on their own machines.

@imreallybadatnames
Copy link
Author

Though, I guess the currently proposed fix would suffice. I'll add it to this PR soon.

@ByteZ1337
Copy link

considering that the created depth texture is supposed to be already cleared

I'd think so as well but the current 1.21.4 implementation does the same thing

framebuffer.setClearColor(0, 0, 0, 0);
framebuffer.clear();

@imreallybadatnames
Copy link
Author

This elusive issue has been driving me crazy. Genuinely, thank you so much @ByteZ1337

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants