化学 ZnTexmCraft 产品发布帖 (不是
ZnTexmCraft 最新地址发布页:https://www.mywiki.cn/ZnTellurium
下方是从 4.22 起所有的更新日志。按发布时间排序,最新的日志排在前列。
========
没次数了...
@一坨蚊子鱼 灰度... 我觉得不好区分就是了,比如说要是底层变黑,那么底层石头和顶层深板岩不好区分
分层设色是什么意思。底下采用不同的纹理?
那这个设计难度可能不太友好喵()我之前是想过这个,但是一直在犹豫
还有一种办法就是顶层方块往斜向上偏移,但这个只能保证顶层方块和它下面的方块有边界感,和上面没有
明天板砖要还回去进行学校资产的每半年的检修,周末拿回来,所以我会消失三天,望周知
========
5.5 凌晨
地形生成初具雏形--指的是单纯的高度而已,矿洞生成未做,河流生成未做,生物群系未做,树啊啥的未做。
但是由高度直接控制的--巨山、平原(绿色,其实我还没想好纹理到底怎么做,这些纹理是临时随便乱定的)、海洋 包括平原上的小山和湖泊,做掉了。
高度系统模仿了 Minecraft 的大陆骨架值控制系统,不过我同样做了一些让它更加轻量快速的优化
文字看着是不是会枯燥喵... 那上图吧,先上一张正常渲染的局部

这个纹理看不惯的话忍一忍,乱做的,目前还没想好怎么区分比如一个草方块是在脚下还是无法逾越的固体方块,有建议欢迎踢我
绿色草方块是平地,泥土和石头是山体,可以想象为世界的一个水平截面,山体在截面中是会 Dirt → Stone 渐近的
好的我们开始上小地图吧,我专门写了个函数就为了搞这个缩略图展示,累死
小地图是 400 格 * 400 格,每个 Canvas 像素是 1 格

这个是一个典型的平原,上面有很多小山,也有湖泊。
食指摁上去食指的宽度大约是 30 格,所以这些山是那种一分钟能挖穿的,湖是那种一分钟能游过去的,都不算大
接下来是一个湖泊稍多的平原

仍然是典型的分形噪声,这玩意调了好久,不过反正最终性能是一流的,板砖这种性能的也可以满帧运行
但是上面这些不叫海洋,手指贴上去比一下大约两分钟就能游过去

没试出来比较大的海洋,因为我的缩略图函数是固定展示一张地图的 x/y 0~400,要一个个试,这个比较小将就看吧
深一点的蓝色是 DeepOcean,我计划的机制是 DeepOcean 无法搭建桥梁,就是 Ocean 你可以搭建一个桥梁在脚下覆盖水,这样可以在上面走,即改造自然
但是 DeepOcean 没法改
我自己乱走的时候碰到过长达几百米的深海,不过现在没有找到。
我们接着看最后一张图吧

这是一个真正的大山,有深板岩可以挖钻石的那种,钻石一定是生成在深板岩层
Dirt-Stone 浅灰-Deepslate 深灰-CaveAir 黑。
CaveAir 就相当于 Minecraft 里面的巨大深板岩层洞穴。很遗憾这次也没有找到大的洞穴给各位看
但有的洞穴是能做到几百格的,不像这个这么可怜,三十格
这种大山的出现频率很低,有意为之,因为我计划在里面放非常强的敌对生物,那么这种山前期就不应该轻易找到(钻石前期也不应该轻易挖到)
没了,真没了,睡觉了喵,都两点半了
5.1 早上
Perlin Noise Fixed !
他喵是两个角点的高度蒙版和权重蒙版的截断索引反了,改了喵
各位可以看到这个地形 (尽管还没有加分形 :D) 非常丝滑,而且它生成地形所需的时间甚至不到引用外部库 simplex noise 的 10%
15 个区块的地形可以在一帧内生成喵!这要归功于 Zn 自创的 64 向梯度预计算优化喵 :3


4.30 晚上
我的简化版 Perlin Noise 算法似乎有点有点有点大大大大问题,它... 各位自己看吧。
这是一张相同地图的不同部分。第一张图是比较漂亮的部分,这个局部还算是比较满意的,在角点嵌套多层分形噪声后应该能得到一个很好的效果。
但是!第二张图... 喵的,为什么会这样啊... 区块边界有明显的分界感。有的地方会产生这种该死的分界!喵的!...
可能是我的高度-方块映射有点问题,我取了 128 作为分界点,可能会带来一定的问题。
Anyhow, 明天修吧喵。睡觉!


4.29 晚上
圆 石 的 纹 理!
该纹理由纹理 #AASSS1AA 自动生成,调用了蒙版 #ilUKpgSmkIJY (A: cobblestone)。
至于这两个 #什么什么的 的看起来奇奇怪怪的压缩字符串是什么意思,往下翻到 4.28 中午有文档可以看喵。
tip: 那个代码有 BUG,不过逻辑是通的,能看,所以我懒得改了 :3

4.28 中午
删掉了之前的所有纹理生成代码,换了一个又短又好读可维护性可自定义性又强的

4.27 晚上
终于把屎山梳理完了... 喵的...
What am I doing: 删了一堆代码,改了一堆代码
下面是一些展示


4.23 中午
适配了 G128 自带的谷歌拼音输入法劫持导致的 Keyup、Keydown 事件混乱的问题。
现在谷歌拼音输入法即使希望导致 keyState 状态混乱也束手无策了:我们测试了许多按键组合,都反映了本机的真实物理按键状态。

4.22 晚上
进行了 strxy 字符串绘制函数的常数优化,G128 上绘制字符串『Version Pre.0』的时长自 ~5ms 降低到 0.15ms。
原生 fillText 需要约 0.04ms 完成这个任务,它是 JS 引擎在 C 底层优化的,而我们达到了其速度的 25%。25% 光速喵!





