写于2024-6-12今天是学校里大四的毕业典礼,很快,他们将离开大学,回到自己的家乡,面对自己的生活。在生活的十字路口上,来得及说出的只有一句“一路顺风”。而在月末的期末考试后,我也将结束一半的大学生活,准备好迎接大三。 今天同时也是学生会退休前的聚会,好聚好散,也为自己一年媒宣负责人的生活画下了一个句号。一年前我问过自己,有没有对一拍脑袋的选择后悔,现在我的回答是:有,但也没有。一年里有各种各样的工作和事务。但,起码多认识了很多人,至少不会一年来都变成宿舍死宅() 虽然都说职业生涯规划课是水课,作业也是水论文,但是我自己其实有思考过未来。继续读研吗?我并不擅长研究或者,学习考试。按着自己视
在分析器火焰图中,能看到blobFromBytes方法占据了大量的时间,但是方法中的运算时间又极少,查阅内存分配会发现大量的内存被分配在了新的VoxelBlob实例上。VoxelBlob是用来储存二进制体素数据的类,它需要一个BitSet(4096),也就是16^3来储存数据,吃掉了大量的内存,而这很快引起gc,并消耗CPU时间。 想要优化只能从源头处找到是哪里在新建VoxelBlob实例,在分析器中可以看到游戏在blobFromBytes的底下是renderModelFaceAO,这个方法的作用是渲染带环境光遮蔽的面,看起来无可厚非。 但是仔细观察调用链会发现,怎么在calculateSha
梳理一下最近阅读雕凿工艺Chisels & Bits的工作方法 对于任意雕刻方块来说,渲染线程会尝试拿到他的模型。方块实体是DataAwareChiseledBlockBakedModel类的getModelData方法。物品是DataAwareChiseledBlockBakedModel类的匿名内部类,覆写ItemOverrides的resolve方法 这两个最后都指向ChiseledBlockSmartModel类的getOrCreateBakedModel方法,这个方法的作用就是拿到缓存中已有的模型,如果没有就生成,烘焙一个模型。 getOrCreateBakedModel有很
音律联觉再到上海一上高铁,就是集批启动(唉,集成战略玩家的丑态)吭哧吭哧到了上海,进了商城,就如刘姥姥进大观园,远远超出了我们的消费水平。在否决了回宾馆找黄焖鸡后,遂搜索附近的平价馆子。几个路痴在地下兜兜转转,最后还是选择了从天桥走(缺德导航害人不浅)上海地铁还是复杂的令人眼花缭乱( 徐家汇既然都来了,那必然免不了鉴赏一下徐家汇地铁站的明日方舟广告全是藏品,集批狂喜,挨个点名,报菜名式的说出效果(当然,我还是喜欢海报区,高清大图,周年庆的皮肤和往届side story的海报图,还有循环播放的大火鸟纪念动画,把方舟这五年来的全数展示出来。每次看五周年纪念动画都会使我动容。 14章主线 - 慈悲
写于2024-4-21有时候感觉到一些,难以说清原由的困意和倦意。是没有事干吗?有实验报告,有数电作业,有一窍不通的电机学要复习,有好多没写完的模组功能。是今天太累了吗?今天也没做什么,给车万女仆写了一个食物黑名单的正则表达式匹配,前前后后50多行,然后,然后就没有其他事情了但是为什么不能像往常一样提起精神去继续做各种事,甚至没有想要刷刷b站,网上冲浪的欲望,只想睡一觉呢。我是奢侈的,我愿意用自己的时间和精力,去换取一个,沉溺其中的梦。但既然是梦,都有醒的一天。看到SQWatermark师傅和3TUSK师傅在生活上的困恼,我就知道,梦醒之日不是很远。但至少在大学四年里我还能继续待在我自己编织的
关于声音事件的注册,首先需要根据这个网站在resource文件夹下写sounds.json。https://forge-doc-119x-zh-cn.readthedocs.io/zh-cn/latest/gameeffects/sounds/不能使用DeferredRegister注册声音事件,要用SoundEvent.createVariableRangeEvent方法注册 12345private static SoundEvent makeSoundEvent(String name) { SoundEvent event = SoundEvent.createVari
当你想要有一个跟原版的刷怪蛋,染色皮革盔甲一样,随着NBT改变颜色的物品时,你就需要像下面一样注册一个彩色渲染 首先,让我们看看原版是怎么实现的,在ItemRender类里面我们看到了这么个对象 ItemColor ,在renderQuadList方法中,会调用这个对象的getColor方法,拿到一个颜色,然后把这个颜色作为这个面的遮罩。 ItemColor类内默认注册了很多原版物品,好在这里有一个Forge提供的钩子可以给开发者把自己模组的物品添加进去net.minecraftforge.client.ForgeHooksClient.onItemColorsInit(itemcolors,
前言在做弹幕踪迹台之前,首先得拿到mc内所有的粒子类型来让玩家选择。 mc原版粒子都在ParticleTypes类内,只需要把这个类里面所有的静态对象穷举为一个列表,即可解决问题,但这么做显然非常不优雅,而且,不兼容其他模组添加到粒子 当然也有planB,通过AccessTransformer,在ParticleEngine中拿到私有对象providers,是的,所有粒子也会在这里注册一遍。 附录:1.显然,你需要一个Particle类,负责粒子的具体逻辑;2.我们当然还需要指定粒子对应的ParticleType,这样才能知道谁是谁;3.还要一个ParticleOption,这样才能方便粒子生
一般来说,像Screen类这样的客户端类,是不应该被服务端上加载的,因为服务端上没有这些ClientOnly的类。但是如果你把一个静态方法放在Screen类里面,然后从客户端发往服务端的网络包里调用这个静态方法。虽然看似没有新建一个实例,但是jvm会尝试加载这个客户端类,然后引发报错。这个问题在开发环境的本地端无法引发,因为本地上同时有客户端和服务端的类,但是服务端上是没有这个的,如果连接服务器时,就会引发问题。
为了得到一个彩色弹幕,首先,我们为贴图准备一个二维平面 在这段代码中,我们传入了一个VertexConsumer对象,并为其定义了四个在边长为size的正方形的顶点。传入了一个color值,通过Color对象拿到r,g,b三个分量并赋予这个平面。 12345678910111213141516171819202122232425262728293031323334353637383940private static void renderSquare(VertexConsumer consumer, Matrix4f matrix4f, Matrix3f matrix3f, int i, fl