Skip to content

Instantly share code, notes, and snippets.

View zomb-676's full-sized avatar
🔷
Rui

zomb_676 zomb-676

🔷
Rui
View GitHub Profile
@zomb-676
zomb-676 / autoChooseBus.md
Created February 29, 2024 18:24
Choose Bus automatically
import net.minecraftforge.common.MinecraftForge
import net.minecraftforge.eventbus.api.Event
import net.minecraftforge.eventbus.api.EventPriority
import net.minecraftforge.eventbus.api.GenericEvent
import net.minecraftforge.eventbus.api.IEventBus
import net.minecraftforge.fml.event.IModBusEvent
import net.minecraftforge.fml.javafmlmod.FMLJavaModLoadingContext
import net.minecraftforge.registries.DeferredRegister
import org.apache.http.util.Asserts

我画的东西他妈的到底去哪里了?

在Event Browser内找到你要判定的draw call
如果难以找到,使用gl(Push/Pop)DebugLabel使用

顶点着色器工作是否符合预期?

  1. 在Texture View中选择Ouputs中要观察的Frame,然后将Overlay模式调节到Wirframe Mesh或HighLight Drawcall观察有无明显特征,如果有则判定测试通过即可
  2. MeshViewer中,选择Preivew中的Vs Out,将Contraols切换为Flycam,观察线框是否处于摄像机中,观察线框模型与绘制目标模型线框是否一致,多半是PoseStack的位置错了或者调用了没有使用matrix4f的pos方法
  3. 观察顶点属性输入数据是否符合预期,多用于判定附加了自定义顶点属性的情况
  4. 在PipeLine State中选择VTX,观察Vertex Attribute Foramts情况,问题种类极多,需要逐个判定index是否和attribute layout填写一致,是否enable,format是否正常,格式R16G16指代有两个数据,每个数据是16位宽,Buffer Slot,相同则代表从同一个buff中获取数据,然后观察Buffers,Element只在使用了DrawElement此类的drawCall时出现,里面的数据是顶点索引,stride指上下两个数据间的步长,offset指从buffer的哪个位置起可以读到第一个数据,Divisor指顶点属性除数,配合drawInstance系列使用,多半是0和1
@zomb-676
zomb-676 / renderdoc.md
Last active April 25, 2025 11:53
RenderDocForDebug
@zomb-676
zomb-676 / Guide.md
Last active August 1, 2023 19:25
ShimmerShadeDevCompatGuide

What's this?

This is a guide for shader dev who want to make shader packs to work compatilble with shimmer
also, this will mention some principle about how shimmer works

What can be made compatilble?

Block/Fluid Bloom and colored Light, but all this shoud be done by you, the shader dev

File

@zomb-676
zomb-676 / CommandDSL.md
Last active January 8, 2024 09:29
CommandDSL
import com.mojang.brigadier.Command
import com.mojang.brigadier.CommandDispatcher
import com.mojang.brigadier.RedirectModifier
import com.mojang.brigadier.SingleRedirectModifier
import com.mojang.brigadier.arguments.ArgumentType
import com.mojang.brigadier.builder.ArgumentBuilder
import com.mojang.brigadier.builder.LiteralArgumentBuilder
import com.mojang.brigadier.builder.RequiredArgumentBuilder
import com.mojang.brigadier.context.CommandContext