第068封“情书”:耶路撒冷Assembling a 3DScanOfTheEarth可视化地图数据
每一天都是神的恩赐,请不要辜负。
▉ 热情在慢慢消退,逐渐冷却,惰性的冰川大兵压境,步步紧逼。— 每天翻译一篇教程,这就是我写给houdini的情书。【首发于同名公众号:“致houdini的情书”】<Entagma>Houdini 2018
█ “冰临城下”
前言不搭后语
冰冻三尺非一日之寒:逃避和放弃永远是最容易的选择!放弃一件事没什么,值得警惕的是,养成了放弃的习惯!
本节内容如何可视化地图数据&地理数据
本节要实现效果…
今天是42岁第043天周五
68这是写给Houdini的第068封“情书”
我是geo流程图
我是vex
04 置换海拔数据
//-- 1a 引入海拔属性
//-- 1b alt属性值在-1~1之间,乘32767把grid转换成米
//-- 1c 再加个比例因子,依据下载的Tile的经纬度计算tile的边缘长度
//但是因为地球表面有扭曲,这里乘引入的RSTM海拔信息,添加一个浮动滑块amp振幅
float offset = f@alt32767.0chf(“amp”);
//-- 3 判断偏移,高于1万的移入一个组,然后y轴=0
if(offset>30.0){
@group_error = 1;
offset=0;
v@Cd = {1,0,0};
f@alt = 0;
}
//-- 2 置换到y轴上
v@P.y += offset;
06 模糊“出错点”再次置换
float offset = f@alt32767.0chf(“amp”);
v@P.y += offset;
07 为海拔属性设置的经纬度坐标系
//-- 1 引入经纬度
//-- 1a 因为输入的面有些锯齿边缘所以不是整数;但经纬度是整数,所以四舍五入
float max_lat = rint(detail(1,“max_lat”));
float min_lat = rint(detail(1,“min_lat”));
float max_lon = rint(detail(1,“max_lon”));
float min_lon = rint(detail(1,“min_lon”));
//-- 2 通过相对坐标(0,0)到对角(1,1)映射,经纬度的最大最小值
float lon = fit01(v@uv.x,min_lon,max_lon);
float lat = fit01(v@uv.y,min_lat,max_lat);
//-- 3 创建矢量坐