【我的世界】簡明扼要的教你做一個金色的物品資訊框框 [1.17~1.19.4][著色器]

附件的下載連結我發在評論區。

猜猜這個怎麼做的?

是 著色器!

著色器是資源包的一部分,1.7就有了,但是1.17才有核心著色器。

著色器一改就是全遊戲生效。

著色器存放在:[資源包]\assets\minecraft\shaders 目錄

其中 shaders\core 裡是 片段著色器(fsh)、頂點著色器(vsh)和核心著色器(json)

片段著色器和頂點著色器的內容都採用GLSL編寫,可用VSCode開啟

GLSL的語法類似於C語言

但,我們不需要這些

這是一個輪子,我們只需要知道怎麼改引數

輪子的作者是@軒宇1725(uid:104432208),特此感謝

這個輪子包含了兩個檔案

不過我們只需要改這個:

那個框分兩部分

第一部分,白色的邊

第二部分,金色的低

這裡,上半部分,是一個色盤

vec4 colors[] = vec4[]( vec4(0), vec4(R, G, B Alpha) / 255, vec4(R, G, B Alpha) / 255, vec4(R, G, B Alpha) / 255 );

Alpha是把透明度對映到0~255的整數,255的100%不透明,0是完全透明

至於這個色盤怎麼改

你只需要寫好第一行,後兩行直接複製過去,一模一樣就行了,保準沒錯

下半部分:

int bitmap[][] = int[][]( int[](4,4,1,1,1), int[](4,1,4,4,4), int[](1,4,4,4,4), int[](1,4,4,4,4), int[](1,4,4,4,4) );

這是一個矩陣,定義了描邊四個角的5x5畫素的圖案

1、2、3都是可見,0和5都是不可見,4是顯示下方陰影,住這個就行了

25個數,對應25個畫素點

這部分是框的底色

vec4 col = vec4(R, G, B, Alpha) / 255.0; col = vec4(R, G, B, Alpha) / 255.0;

格式一樣,直接改就行了,也不用管他怎麼算的

至於兩個顏色程式碼的作用分別是啥:

第一行對應紅色區域,第二行對應金色區域

但,這個框是歪的。

沒錯,mojang在1.19.4改了著色器的一個很小的內容,導致這個框歪了

因此著色器的版本要拆分成:

1.7~1.15.2

1.16~1.16.5

1.17~1.19.3

1.19.4+

新版本著色器的變化,就在這裡:

就是把頂點的順序做了個輪換變換。

修改後:

隨便看看 更多