// ハイトマップ用高さシェーダ // ver 1.3 2020/09/10 // by yarunashi@dooon // xs_begin // author : 'yarunashi@dooon' // arg : { id = '0' name = 'scale' value = '1.0' range = '0.1 256.0' step = '0.05' decimal = '2' } // xs_end float map( vec3 v ) { float scale = i_args[0]; float step = (i_args[1] == 0.0)? 1.0:i_args[1]; //マップの色1-255を取得 float index = voxel( vec3( v.x, v.y, 0.0 )); if (index <= 0.0) return 0.0; //色の高さを反転 float height = 256.0 - index; //空間の高さに合わせる height = (height / 255.0) * iVolumeSize.z * scale; index = 256.0 - height; index = index - mod(index, step) + 1; return ( floor(v.z) < height ? index : 0.0 ); }