mc中复杂的实体逻辑通过Brain系统实现,为了使用这套系统,我们需要在实体类中覆写以下方法来为这个实体添加一个大脑 1234567891011121314151617@Override@SuppressWarnings("all")public Brain<MarisaEntity> getBrain() { return (Brain<MarisaEntity>) super.getBrain();}@Overrideprotected Brain.@NotNull Provider<MarisaEntity>
随笔考研学习很枯燥,让我想起高中无聊的生活,但是没有办法,如果没有考研究生,上班生活怕是更枯燥无味。很害怕,自上大学以来,看到好多好多水平,精力,成就远远超过我的大佬上班后就逐渐看不到人影。 网上的生活也很可怕,社恐犯了就会不由自主地想要逃离。时常会感觉,每天花那么多时间躲在IDEA里面,躲在Blender里面,可能就是在躲避自己其实并不合群这件事实,用不停的干活来麻痹自己的所思所想,但是我又很难做出改变了。 哎,头脑思绪好乱。希望今年考研结束后,能好好清理一下脑子里的各种杂乱的想法。 晚安。
从调用链上看,mc在渲染物品的时候需要一个BakedModel,这个对象在ItemRenderer的getModel方法中返回 1234567891011121314public BakedModel getModel(ItemStack stack, @Nullable Level level, @Nullable LivingEntity entity, int seed) { BakedModel bakedmodel; if (stack.is(Items.TRIDENT)) { bakedmodel = this.itemModelSha
首先我们需要一个类实现TooltipComponent接口,这个类的初始化接受我们需要渲染传递的参数,简单的,这里放上一个record类就好了 123public record RecordDanmakuTooltip(ArrayList<Point> pointArrayList) implements TooltipComponent {} 然后就是客户端上的渲染类,实现ClientTooltipComponent接口 123456789101112131415161718192021222324public class ClientDanmakuTool
RenderDoc是一个很常用的渲染辅助工具,这里聊聊使用RenderDoc查看mc的部分经验 附加RenderDoc这里借用千九博客里的内容,介绍如何在开发环境下附加RenderDoc 在gradle中,添加如下任务,其中E:\\RenderDoc\\renderdoccmd.exe替换为本地电脑上对应的RenderDoc的路径 12345678910111213141516171819202122tasks.register("runWithRenderDoc", Exec) { def javaExecTask = tasks.withType(Jav
写于2024-10-21,我21岁生日相比于去年,今年反而没有那么多话想说。 先说一说过去一年的总结吧。个人项目上,今年TeaCon复刻了东方夜雀食堂制作的模组,和tlm群的群友以及酒石酸把车万女仆搬上了1.21-neoforge,工作量还是很大的。另外,也算是正式加入Minecraft幻想乡制作组并承接部分模组工作。(早日升上1.20) 线下活动,去参加了秘封步梦华,上海tho和南农thp,当然还有音律联觉2024,玩的很尽兴,但是其实没买啥纪念品()有点后悔,人生中应该也没有多少这样的假期了,有时候该留点回忆的话,应该是留一点的。年少正当时,不应该等成为无聊的成年人了再来回味的。 突然发现
写在题前离开喧嚣的魅知幻想博览会2024上海场·星辉琉璃,离开繁华的市中心,走进上海的市井小巷,点上一碗大大的14块的雪菜肉丝面。看着蒸腾的热气与长长的面条,一股莫名的伤感涌上心头。 正文遗憾吗,是的。遗憾今天没有去幻奏听音乐会,遗憾其实逛了这么多摊子其实没买啥,遗憾这么多好看的cos其实都没有去集邮,遗憾在摊位上只在角落尝试修bug,好多好多遗憾。 摊位上的其他人也有很多自己的遗憾,无论是可以但是没有做到的,还是力所不能及的,在短短的四天准备时间里,都留下了很多当下的遗憾。 遗憾这个东西还蛮神奇的,明知会付出时间,精力,血压,金钱或者其他更多种种,但是还是会因为没去做而遗憾。 但是遗憾本身就
模型烘焙,就是把一个四边形,通过一步步方法,烘焙成供mc渲染管线使用来渲染一个四边形面的BakedQuad对象。可以首先来看看BakedModel的构造方法 12345678public BakedQuad(int[] pVertices, int pTintIndex, Direction pDirection, TextureAtlasSprite pSprite, boolean pShade, boolean hasAmbientOcclusion) { this.vertices = pVertices; this.tintIndex = pTintIndex;
写于2024-6-12今天是学校里大四的毕业典礼,很快,他们将离开大学,回到自己的家乡,面对自己的生活。在生活的十字路口上,来得及说出的只有一句“一路顺风”。而在月末的期末考试后,我也将结束一半的大学生活,准备好迎接大三。 今天同时也是学生会退休前的聚会,好聚好散,也为自己一年媒宣负责人的生活画下了一个句号。一年前我问过自己,有没有对一拍脑袋的选择后悔,现在我的回答是:有,但也没有。一年里有各种各样的工作和事务。但,起码多认识了很多人,至少不会一年来都变成宿舍死宅() 虽然都说职业生涯规划课是水课,作业也是水论文,但是我自己其实有思考过未来。继续读研吗?我并不擅长研究或者,学习考试。按着自己视
在分析器火焰图中,能看到blobFromBytes方法占据了大量的时间,但是方法中的运算时间又极少,查阅内存分配会发现大量的内存被分配在了新的VoxelBlob实例上。VoxelBlob是用来储存二进制体素数据的类,它需要一个BitSet(4096),也就是16^3来储存数据,吃掉了大量的内存,而这很快引起gc,并消耗CPU时间。 想要优化只能从源头处找到是哪里在新建VoxelBlob实例,在分析器中可以看到游戏在blobFromBytes的底下是renderModelFaceAO,这个方法的作用是渲染带环境光遮蔽的面,看起来无可厚非。 但是仔细观察调用链会发现,怎么在calculateSha