0
我正在寫一個ios頂點着色器,如果檢測到z方向發生變化,x方向會「變平」一個MC世界,反之亦然(xz平面是perp到高度)。我有幾個着色器讓世界變得很好,但是編寫這個僞運動檢測並沒有奏效。我知道條件是昂貴的。我的位置與一個號碼,它的工作:MCPE GLSL條件
if (worldPos.x != 4.) {
worldPos.z = 0.;
}
但對比位置到位置的靜態調用沒有。到目前爲止,我已經嘗試將常量浮點分配給x和z分量,統一浮點數和POS4制服,但沒有成功。我有一種感覺,條件因數據類型問題而失敗?如果PE版本像PC一樣顯示協調一致,則更容易調試。感謝任何/所有的幫助!當前代碼:
uniform POS4 CHUNK_ORIGIN_AND_SCALE;
attribute POS4 POSITION;
void main()
{
POS4 worldPos;
worldPos.xyz = (POSITION.xyz * CHUNK_ORIGIN_AND_SCALE.w) + CHUNK_ORIGIN_AND_SCALE.xyz;
worldPos.w = 1.;
const float staticPosx = worldPos.x;
const float staticPosz = worldPos.z;
if (worldPos.x != staticPosx) {
worldPos.z = 0.;
staticPosx = worldPos.x;
}
if (worldPos.z != staticPosz) {
worldPos.x = 0.;
staticPosz = worldPos.z;
}
etc.
什麼是'POS4'?這不是GLSL的一部分。另外,什麼是「MC世界」? –
@NicolBolas'POS4'是x,y,z和尺寸因子w。它可能只能用於OpenGL。 MCPE是我的世界袖珍版。 – Andrew