文章目录
原文:
OpenGL-Turorial - Billboards
- Billboards
- Solution #1 : The 2D way
- Solution #2 : The 3D way
- Solution #3 : The fixed-size 3D way
- Solution #4 : Vertical rotation only
(2020.03.24 23:16 这里吐槽一下:我的天,CSDN更新后,写文章系统一堆BUG,写着写着,光标不会换行,即使按下多少次回车键都一样,然后保存草稿后,在刷新页面,发现之前写的一部分内容不见了。。。这。。。无语,多浪费心血啊。。。)
BillboardsBillboard 是3D世界中的2D元素。它不是一个在所有其他东西顶上显示的2D菜单,也不是一个可以让你旋转的3D平面;但介于他们之间的东西,如多数游戏中的:血条。
而Billboard区别在于他们的位置是可以指定的,但它们的朝向会一直的朝向镜头。
Solution #1 : The 2D way解决方案1:2D的方法
这个方法超级简单。
仅仅计算在屏幕中的位置,并在这个位置上显示一个2D tex文本(查看教程11有)。
// Everything here is explained in Tutorial 3 ! There's nothing new.
glm::vec4 BillboardPos_worldspace(x,y,z, 1.0f);
glm::vec4 BillboardPos_screenspace = ProjectionMatrix * ViewMatrix * BillboardPos_worldspace;
BillboardPos_screenspace /= BillboardPos_screenspace.w;
if (BillboardPos_screenspace.z
关注
打赏
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?