为啥这个边是灰色的?
啊?没太听懂
你不能改颜色的吗
你不能改颜色的吗
就要是灰色的
颜色在textures\colormap\grass.png
颜色在textures\colormap\grass.png
Mikoto。 发表于 2020-6-24 20:10
啊?没太听懂
你不能改颜色的吗
就是怎么用那个灰色草方块的顶面
PercyDan 发表于 2020-6-24 20:12
就要是灰色的
颜色在textures\colormap\grass.png
那怎么用这个东西
Garyjel 发表于 2020-6-24 20:16
那怎么用这个东西
建议阅读wiki上“生物群系”部分中的“生物群系颜色”部分
本帖最后由 爱心魔王FHC 于 2020-6-24 22:10 编辑
见https://wiki.biligame.com/mc/%E7%94%9F%E7%89%A9%E7%BE%A4%E7%B3%BB
本来草方块是灰色的,然后利用这个贴图根据不同的生物群系进行上色

Garyjel 发表于 2020-6-24 20:16
那怎么用这个东西
见https://wiki.biligame.com/mc/%E7%94%9F%E7%89%A9%E7%BE%A4%E7%B3%BB
本来草方块是灰色的,然后利用这个贴图根据不同的生物群系进行上色

本帖最后由 ⊙u⊙ 于 2020-6-24 13:11 编辑
那张贴图根据草方块所在的群系和高度进行定位,把定位到的颜色覆盖到草方块的灰色区域
你要做的就是找到贴图里对应的那一个点,修改该点的颜色
foliage——用于大部分树叶
grass——用于草地
系统给每个群系都分配了一个温度和湿度值,温度又因高度有所变化,最后根据游戏内方块调整后的温度和湿度定位uv点
也就是说,影响一个草/树叶/方块的为当前所在群系的温度、湿度和海平面的高度
温度——temperature
湿度——rainfall/downfall
调整后温度——adj_temperature
调整后湿度——adj_rainfall/downfall
高度——elevation *海拔高度为y=64
clamp(value,min,max)——clamp函数,使代入的值限定在min和max之间。
如clamp(value,0.0f,1.0f)
value=0.7f时,最终的值为0.7f
value=-2.0f时,最终的值为0.0f
value=1.1f时,最终的值为1.0f
复制代码个人对以上两条代码的理解...
调整后温度 = clamp(温度 - 海拔高度差*0.00166667,0.0f,1.0f)
调整后湿度 = clamp(湿度,0.0f,1.0f) * 调整后温度
既是
若方块坐标y<=64时,调整后温度为 = clamp(温度,0.0f,1.0f)
若方块坐标y>64时,调整后温度为 = clamp(温度-(y-64)*0.00166667f,0.0f,1.0f)
调整后湿度 = clamp(湿度,0.0f,1.0f) * 调整后温度
因为到1.13为止都没有湿度>1.0f或<0.0f的群系,所以调整后湿度简单地记作 调整后温度*湿度
快速获得colormap的贴图uv点
原版colormap,以grass.png为例,尺寸为256*256像素,根据以上稍做整理,就可快速得出位于贴图下草方块对应群系的颜色选取点
复制代码
以平原、海洋、沙漠和冷针叶林为例
"plains": { "temperature": 0.8, "downfall": 0.4 }
"ocean": { "temperature": 0.5, "downfall": 0.5 }
"desert": { "temperature": 2.0, "downfall": 0.0 }
"taiga_cold": { "temperature": -0.5, "downfall": 0.4 }
位于y为64或以下高度的平原草方块的uv点为 b=0,a=0.8,uv:(256-256*0.8-1,256-256*0.8*0.4-1)=(50.2,173.08)=(50,173)
位于y为255高度的平原草方块的uv点为 b=255-64,a=0.8-b*0.00166667,uv:(131.693496,205.677399)=(131,205)
位于y为64或以下高度的海洋草方块的uv点为 b=0,a=0,uv:(127,191)
位于y为255高度的海洋草方块的uv点为 b=191,a=0,uv:(208,231)
位于y为64或以下高度的沙漠草方块的uv点为 b=0,a=1,uv:(-1,255)??? 0,255
位于y为64或以下高度的沙漠草方块的uv点为 b=0,a=1,uv:(-1,255)??? 0,255
位于y为64或以下高度的冷针叶林草方块的uv点为 b=0,a=0,uv:(255,255)
位于y为255高度的冷针叶林草方块的uv点为 b=191,a=0,uv:(255,255)
*
海洋群系,金块为海平面高度,此高度颜色一致
http://wx3.sinaimg.cn/large/006WiyOmly1frxo3jvprwj30oz0iwwux.jpg
y=255时,同一高度的海洋群系颜色
http://wx2.sinaimg.cn/large/006WiyOmly1frxo3lo30xj30xb0epn29.jpg
俯视图...
http://wx4.sinaimg.cn/large/006WiyOmly1frxo3eo74oj30rx0ilb1n.jpg
http://wx3.sinaimg.cn/large/006WiyOmly1frxo3o6wd4j31070j47l6.jpg
平原超平坦...
http://wx2.sinaimg.cn/large/006WiyOmly1frxo3r3yn0j30mo0ff0uh.jpg
http://wx2.sinaimg.cn/large/006WiyOmly1frxo3pokduj30rx0gpadg.jpg
以材质的角度上说,可能mc里最厉害的就是草/草方块和树叶方块了...
我从pca从不知道哪里扒下来的1.13群系温湿值,感谢dalao
那张贴图根据草方块所在的群系和高度进行定位,把定位到的颜色覆盖到草方块的灰色区域
你要做的就是找到贴图里对应的那一个点,修改该点的颜色
foliage——用于大部分树叶
grass——用于草地
系统给每个群系都分配了一个温度和湿度值,温度又因高度有所变化,最后根据游戏内方块调整后的温度和湿度定位uv点
也就是说,影响一个草/树叶/方块的为当前所在群系的温度、湿度和海平面的高度
温度——temperature
湿度——rainfall/downfall
调整后温度——adj_temperature
调整后湿度——adj_rainfall/downfall
高度——elevation *海拔高度为y=64
clamp(value,min,max)——clamp函数,使代入的值限定在min和max之间。
如clamp(value,0.0f,1.0f)
value=0.7f时,最终的值为0.7f
value=-2.0f时,最终的值为0.0f
value=1.1f时,最终的值为1.0f
- adj_temperature = clamp(temperature - (float)elevation*0.00166667f,0.0f,1.0f)
- adj_rainfall = clamp(rainfall,0.0f,1.0f) * adj_temperature
调整后温度 = clamp(温度 - 海拔高度差*0.00166667,0.0f,1.0f)
调整后湿度 = clamp(湿度,0.0f,1.0f) * 调整后温度
既是
若方块坐标y<=64时,调整后温度为 = clamp(温度,0.0f,1.0f)
若方块坐标y>64时,调整后温度为 = clamp(温度-(y-64)*0.00166667f,0.0f,1.0f)
调整后湿度 = clamp(湿度,0.0f,1.0f) * 调整后温度
因为到1.13为止都没有湿度>1.0f或<0.0f的群系,所以调整后湿度简单地记作 调整后温度*湿度
快速获得colormap的贴图uv点
原版colormap,以grass.png为例,尺寸为256*256像素,根据以上稍做整理,就可快速得出位于贴图下草方块对应群系的颜色选取点
- 代入:群系温度,群系湿度,方块所在的y轴高度
- b = y - 64
- 若 b < 0.0,b = 0.0
- a = 群系温度 - b*0.00166667
- 若 a > 1.0,a = 1.0
- 若 a < 0.0,a=0.0
- uv:( 256 - 256*a -1, 256 - 256*a*群系湿度 -1)
以平原、海洋、沙漠和冷针叶林为例
"plains": { "temperature": 0.8, "downfall": 0.4 }
"ocean": { "temperature": 0.5, "downfall": 0.5 }
"desert": { "temperature": 2.0, "downfall": 0.0 }
"taiga_cold": { "temperature": -0.5, "downfall": 0.4 }
位于y为64或以下高度的平原草方块的uv点为 b=0,a=0.8,uv:(256-256*0.8-1,256-256*0.8*0.4-1)=(50.2,173.08)=(50,173)
位于y为255高度的平原草方块的uv点为 b=255-64,a=0.8-b*0.00166667,uv:(131.693496,205.677399)=(131,205)
位于y为64或以下高度的海洋草方块的uv点为 b=0,a=0,uv:(127,191)
位于y为255高度的海洋草方块的uv点为 b=191,a=0,uv:(208,231)
位于y为64或以下高度的沙漠草方块的uv点为 b=0,a=1,uv:(-1,255)??? 0,255
位于y为64或以下高度的沙漠草方块的uv点为 b=0,a=1,uv:(-1,255)??? 0,255
位于y为64或以下高度的冷针叶林草方块的uv点为 b=0,a=0,uv:(255,255)
位于y为255高度的冷针叶林草方块的uv点为 b=191,a=0,uv:(255,255)
*
- 当y为64或以下时,草方块会准确地使用那个点的颜色
- y>64时,则会受随机噪点的影响,(就算是在同一高度下)颜色也会有小幅度的变化
- 部分群系的uv选点范围有重叠
- 部分群系颜色为硬编码,既不受材质影响。详见wiki
- 颜色方面,是叠加,从uv那确认的颜色会和grass_block_top.png/grass_top.png这种灰色的贴图进行颜色叠加那样的处理
- 颜色之间的变化处理为混色,不同群系的交叉位,噪点影响的颜色...
- 不清楚到底是uv取色叠加,还是单纯uv确认的贴图范围和方块的贴图叠加处理。认为是后者,但部分测试告诉我是前者...
海洋群系,金块为海平面高度,此高度颜色一致
http://wx3.sinaimg.cn/large/006WiyOmly1frxo3jvprwj30oz0iwwux.jpg
y=255时,同一高度的海洋群系颜色
http://wx2.sinaimg.cn/large/006WiyOmly1frxo3lo30xj30xb0epn29.jpg
俯视图...
http://wx4.sinaimg.cn/large/006WiyOmly1frxo3eo74oj30rx0ilb1n.jpg
http://wx3.sinaimg.cn/large/006WiyOmly1frxo3o6wd4j31070j47l6.jpg
平原超平坦...
http://wx2.sinaimg.cn/large/006WiyOmly1frxo3r3yn0j30mo0ff0uh.jpg
http://wx2.sinaimg.cn/large/006WiyOmly1frxo3pokduj30rx0gpadg.jpg
以材质的角度上说,可能mc里最厉害的就是草/草方块和树叶方块了...
我从pca从不知道哪里扒下来的1.13群系温湿值,感谢dalao
你在什么网站里做的啊!
额,这不是根据生物群系定的吗