osgEarth的Rex引擎原理分析(九十四)rex引擎如何显示瓦片的边界

目标:(八十八)中的问题171

效果图如下:

思路:在文章(osgEarth的Rex引擎原理分析(九十一)晕眩图的制作与实现)的基础上,判断纹理坐标的范围,在边界处用特殊颜色即可。

着色器代码如下:

if(oe_layer_tilec.s<0.01 || oe_layer_tilec.s>0.99 || oe_layer_tilec.t<0.01 || oe_layer_tilec.s>0.99){
		color=vec4(1.0,0.0,0.0,1.0);
	}

加入抗锯齿效果后:

#version $GLSL_VERSION_STR
$GLSL_DEFAULT_PRECISION_FLOAT

#pragma vp_name       REX Engine - Fragment
#pragma vp_entryPoint elevation_last_frag
#pragma vp_location   fragment_coloring
#pragma vp_order      0.9

//tile coordinate
vec4 oe_layer_tilec;
// SDK functions:
float oe_terrain_getElevation();

float linearstep(float edge0, float edge1, float x) {
    float t = (x - edge0)/(edge1 - edge0);
    return clamp(t, 0.0, 1.0);
}

void elevation_last_frag(inout vec4 color)
{	
	vec4 vec4ColorArray[64];
	vec4ColorArray[ 0] = vec4(0.00000, 0.00000,   0.56250,     1.0);
  vec4ColorArray[ 1] = vec4(0.00000, 0.00000,   0.62500,     1.0);
  vec4ColorArray[ 2] = vec4(0.00000, 0.00000,   0.68750,     1.0);
  vec4ColorArray[ 3] = vec4(0.00000, 0.00000,   0.75000,     1.0);
  vec4ColorArray[ 4] = vec4(0.00000, 0.00000,   0.81250,     1.0);
  vec4ColorArray[ 5] = vec4(0.00000, 0.00000,   0.87500,     1.0);
  vec4ColorArray[ 6] = vec4(0.00000, 0.00000,   0.93750,     1.0);
  vec4ColorArray[ 7] = vec4(0.00000, 0.00000,   1.00000,     1.0);
  vec4ColorArray[ 8] = vec4(0.00000, 0.06250,   1.00000,     1.0);
  vec4ColorArray[ 9] = vec4(0.00000, 0.12500,   1.00000,     1.0);
  vec4ColorArray[10] = vec4(0.00000, 0.18750,   1.00000,     1.0);
  vec4ColorArray[11] = vec4(0.00000, 0.25000,   1.00000,     1.0);
  vec4ColorArray[12] = vec4(0.00000, 0.31250,   1.00000,     1.0);
  vec4ColorArray[13] = vec4(0.00000, 0.37500,   1.00000,     1.0);
  vec4ColorArray[14] = vec4(0.00000, 0.43750,   1.00000,     1.0);
  vec4ColorArray[15] = vec4(0.00000, 0.50000,   1.00000,     1.0);
  vec4ColorArray[16] = vec4(0.00000, 0.56250,   1.00000,     1.0);
  vec4ColorArray[17] = vec4(0.00000, 0.62500,   1.00000,     1.0);
  vec4ColorArray[18] = vec4(0.00000, 0.68750,   1.00000,     1.0);
  vec4ColorArray[19] = vec4(0.00000, 0.75000,   1.00000,     1.0);
  vec4ColorArray[20] = vec4(0.00000, 0.81250,   1.00000,     1.0);
  vec4ColorArray[21] = vec4(0.00000, 0.87500,   1.00000,     1.0);
  vec4ColorArray[22] = vec4(0.00000, 0.93750,   1.00000,     1.0);
  vec4ColorArray[23] = vec4(0.00000, 1.00000,   1.00000,     1.0);
  vec4ColorArray[24] = vec4(0.06250, 1.00000,   0.93750,     1.0);
  vec4ColorArray[25] = vec4(0.12500, 1.00000,   0.87500,     1.0);
  vec4ColorArray[26] = vec4(0.18750, 1.00000,   0.81250,     1.0);
  vec4ColorArray[27] = vec4(0.25000, 1.00000,   0.75000,     1.0);
  vec4ColorArray[28] = vec4(0.31250, 1.00000,   0.68750,     1.0);
  vec4ColorArray[29] = vec4(0.37500, 1.00000,   0.62500,     1.0);
  vec4ColorArray[30] = vec4(0.43750, 1.00000,   0.56250,     1.0);
  vec4ColorArray[31] = vec4(0.50000, 1.00000,   0.50000,     1.0);
  vec4ColorArray[32] = vec4(0.56250, 1.00000,   0.43750,     1.0);
  vec4ColorArray[33] = vec4(0.62500, 1.00000,   0.37500,     1.0);
  vec4ColorArray[34] = vec4(0.68750, 1.00000,   0.31250,     1.0);
  vec4ColorArray[35] = vec4(0.75000, 1.00000,   0.25000,     1.0);
  vec4ColorArray[36] = vec4(0.81250, 1.00000,   0.18750,     1.0);
  vec4ColorArray[37
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值