Cesium 渐变长方体实现-Shader

news/2024/10/30 15:29:50/

position获取:

1.1 在cesium中,可通过vec4 p = czm_computePosition();获取 模型坐标中相对于眼睛的位置矩阵

1.2 vec4 eyePosition = czm_modelViewRelativeToEye * p; // position in eye coordinates 获取eyePosition

1.3 v_positionEC = czm_inverseModelView * eyePosition; // 将eyePosition转换为模型坐标 注意:模型坐标系的原点为地心,不等于模型的东北上坐标系

法线获取:

[rml_read_more]

​ v_normalEC = czm_normal * normal; // normal in eye coordinates 获取eyeNormal

片元着色器计算:

3.1由于获取道德是模型坐标,并不是东北上坐标,所以不能直接使用坐标y值表示模型高度。

3.2模型高度计算: 通过矢量长度计算公式算出点模型坐标内点到地心原点的距离

float l = sqrt(pow(v_positionEC.x,2.0) + pow(v_positionEC.y,2.0) + pow(v_positionEC.z,2.0));

3.3拉伸后取小数部分得到0到1的渐变值。矩形高:100000
    


http://www.ppmy.cn/news/21422.html

相关文章

用光盘怎样重装电脑系统

用光盘怎样重装电脑系统?重装系统,听起来好像很难的样子。其实没那么难,用光盘装还是比较容易的。下面一起看看如何用光盘重装系统吧。 工具/原料: 系统版本:win7 品牌型号:联想yoga13 方法/步骤&#xf…

【C++题解】NOIP2015提高组 - 跳石头

✍个人博客:https://blog.csdn.net/Newin2020?spm1011.2415.3001.5343 📚专栏地址:杂题讲解 📝原题地址:跳石头 📣专栏定位:在这里我将整理一些其他比赛或面试的题解~ ❤️如果有收获的话&…

RabbitMQ面试题

什么是 MQ MQ(message queue),从字面意思上看,本质是个队列,FIFO 先入先出,只不过队列中存放的内容是 message 而已。 还是一种跨进程的通信机制,用于上下游传递消息。 在互联网架构中,MQ 是一种非常常见的…

弱网测试利器-Charles工具实战

一:弱网测试要点 二:利用抓包工具charles进行弱网设置,适用PC端和移动端(IOS/Android) 1、以charles 4.5.6版本为例,打开Proxy->Throttle Settings 2、打开Throttle Settings,界…

【Linux】十分钟快速了解Linux常用指令(建议收藏)

目录💖一. 关机指令01. shutdown02. halt03. reboot💖二. 常用指令04. ls05. pwd06. cd07. touch08. mkdir09. rm10. man11. cp(复制)12. mv指令13. nano14. cat15. less16. head17. tail18. find19. grep20. zip/unzip21. tar💖三、 日期指令…

重写QTableView类解决鼠标右击、单击、双击问题(附使用方法)

目录 一.重写响应事件 1.区分单击和右击 如何使用 2.区分单击和双击 3.其他修改 二.eventFilter截获事件(待验证) 界面上的QTableView在点击右键想出现右键事件的时候,同时把单击对应的槽函数执行了一遍,所以需要处理做一下…

二分算法学习

🌼 扎着马尾的姑娘,笑容温柔很善良自在的少年 - 要不要买菜 - 单曲 - 网易云音乐 前言 本来打算做蓝桥杯2022C++A组省赛F题青蛙过河的,看到标签显示"二分",第一时间竟然想不到二分是什么,所以来学习下 目录…

List、Set、Map的区别

List、Set、Map的区别 ​ (图一) 1.面试题:你说说collection里面有什么子类。 (其实面试的时候听到这个问题的时候,你要知道,面试官是想考察List,Set) 正如图一,lis…