![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
OpenGl
文章平均质量分 81
伐尘
这个作者很懒,什么都没留下…
展开
-
【openGL】阴影映射问题:shadow acne(阴影失真)和peter panning(阴影悬浮)
4、这四个fragment分别取名a,b,c,d,由于光源的位置会导致求得的四个距离会不一样,先求a到光源的距离假设为9.8<10,b到光源的距离是11.6 >10,c到光源的距离12.1>10,c到光源的距离9.5<10,。使用正面剔除来生成深度贴图可以解决正面的阴影失真,也就是说只有物体背面才会产生深度信息,向地板这种只有一个面的物体不会产生深度信息,这也是合理的,但是这也只能在封闭的物体上这么做。来解决这个问题,将深度图中的值稍微减小一点而不是片段到光源的距离,两者结合就可以解决大部分问题。原创 2024-07-22 17:10:47 · 211 阅读 · 0 评论 -
【OpenGL】深入理解齐次坐标及其作用
单从定义上来讲,齐次坐标(投影坐标)就是用,也可说用齐次坐标来表示笛卡尔坐标,具体的数学表达式可以这样写:在直角坐标系点坐标(x,y)末尾加上一个额外的变量w,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有这也就解决了笛卡尔坐标系无法表示无穷远点的问题,按照人的视觉,两条平行线在无穷远处会相交,采用直角坐标系无法对这一现象进行描述,而,解决了这一问题。于此同时衍生了另外一个问题,转载 2024-07-18 17:28:20 · 17 阅读 · 0 评论 -
【OpenGL】从“法线贴图的意义”到“切线空间公式的推导与验证”
那么,该如何得到一个面上的“切线空间”呢?毕竟,我们只知道这个切线空间的Z轴是表面法线方向,但是这仅确定下来一个轴,满足此轴有无数个坐标系:那么其中哪个坐标系是我们需要的切线空间呢?我们有个期望:假设一个三角面在贴图上对应一个直角三角形,其两直角边分别平行于纹理坐标的U轴与V轴:如果——在法线贴图中,这个三角形内有一点的颜色是1.00.50.51.00.50.5,即对应的向量是100100。那么——直观上,我们觉得它指向的方向应该是贴图的U方向。又因为——三角面中一边。转载 2024-07-16 17:45:51 · 11 阅读 · 0 评论 -
【OpenGL】常用的3D测试场景与模型
由来自Lightwave的Marko Dabrovic于2002年创建,原型是位于克罗地亚南部港口城市杜布罗夫尼克的著名旅游景点、有400余年历史的Sponza宫。因其发杂又易于进行观察对比的结构,原创 2024-07-12 10:59:31 · 918 阅读 · 0 评论 -
[OpenGL]推导LookAt函数定义的视图矩阵
lookat参数中的pos和target定义视图坐标系的z轴,z轴方向是pos-target,这是因为视图坐标系是右手坐标系,z轴方向指向观察者。旋转矩阵的每一行代表视图坐标的坐标轴在世界坐标系下的坐标。右上角的1x3矩阵,代表视图坐标原地在世界坐标系下坐标,但是乘了一个旋转矩阵还进行了取反。其实所谓的视图矩阵,就是一个坐标系与坐标系之间的转换矩阵。视图矩阵将世界坐标系下的坐标转换到了视图坐标系下。(都是向量), 视图坐标系的原点在世界坐标系下的坐标为。, 在世界坐标下和视图坐标下的坐标分别表示。转载 2024-05-23 21:00:55 · 86 阅读 · 0 评论 -
[openGL]正交投影,透视投影,MVP变换
视图变换顾名思义就是把你所看到的图变换,举个简单的例子,打比方在日常生活中你去拍照,你首先会取景,然后把你想拍的东西都摆放好,这一步叫做model transformation(模型变换)。接下来你肯定会挑选一个特定的角度摆放你的摄像机,这一步就叫做view transformation(视图变换)。然后按下快门后把图片拍下来,这一步就叫做projection transformation(投影变换)。转载 2023-06-11 12:47:45 · 2533 阅读 · 3 评论 -
【OpengGL】非等比缩放法线推导
答案要看你的M里面涉及了怎样的平移、旋转和缩放。转载 2023-06-08 15:33:09 · 118 阅读 · 0 评论 -
【opengl】两种方法在Qt中使用OpenGL库加载stl三维模型
是一种用于渲染2D、3D矢量图形的跨语言、跨平台的应用程序接口。OpenGL的实现利用了图形加速硬件,这些实现一般由显示设备厂商提供。但真正使用时,一般采用基于gl的第三方库,用于在程序的运行期判断当前硬件是否支持相关的扩展,防止程序崩溃甚至造成硬件损坏。目前我了解到的第三方库就有gladglewglfwfreeglut等,下图反映了它们之间的关系。此外在安装Qt后,Qt本身也会对gl库进行一定的封装,即qopengl.h和s。Qt是目前做UI非常好的一款工具,再结合它给的例子,比如cube。转载 2023-03-13 09:43:54 · 5422 阅读 · 3 评论 -
【opengl】向量的点乘(一)
向量u和向量v的点乘,表示为u·v,其数值为:我们知道表示的是向量的长度,由于向量的长度总是一个大于零的标量,那么,对于上述点乘而言,只有当为正数的时候,点乘结果才为正数。因此,我们可以推导出点乘的一些性质:其中,最后一条性质非常重要。如果两个向量相互正交(垂直),那么他们的点乘。利用这个性质往往能够简化一些计算。转载 2023-03-12 21:42:55 · 687 阅读 · 0 评论 -
【OpenGL】平移、旋转和缩放矩阵推导
将点p(x,y,z)平移到p’(x’,y’,z’),在X轴、Y轴、Z轴三个方向上平移的距离分别为Tx,Ty,Tz,其中Tz为0(二维平面的平移),如图3.19所示。根据最后一个式子1=mx+ny+oz+p,很容易求出系数m=0,n=0,o=0,p=1。例如,当你通过比较x’=xcosβ-ysinβ与x’=ax+by+cz+d时,可知a=cosβ,b=-sinβ,c=0,d=0。类似地,比较y’,可知e=0,f=1,g=0,h=Ty;比较z’,可知i=0,j=0,k=1,l=Tz。通过三角函数两角和公式。转载 2022-09-26 10:08:48 · 486 阅读 · 0 评论 -
【OpenGl】OpenGL之弧度和角度的换算
公式:1角度=π/180弧度1弧度=180/π度转载 2022-06-17 14:48:21 · 281 阅读 · 0 评论 -
【OpenGl】openGL 诸多库之间关系 及 环境配置
【OpenGl】openGL 诸多库之间关系 及 环境配置最近一直在学习OpenGL,但是看OpenGL编程指南不同版本之间使用一堆不同的库,概念名称全都混搅起来了,越看越糊涂,于是整理了一下OpenGL相关的一些库的名词,才发现是不同时期不同版本不断发展的结果。现在比较流行的搭配主要是freeglut+glew和glfw+glew,如果想做简单的测试或者自己实在牛逼直接使用gl glu。另外在这里科普一下glad、glew、glfw、Freeglut的区别:glew(The OpenGL E转载 2022-05-26 11:06:52 · 1077 阅读 · 0 评论 -
【OpenGl】判断点是否在三角形内 3D-2D
【OpenGl】判断点是否在三角形内 3D-2D注明:我只是为了自己学习照搬概述:给定三角形ABC和一点P(x,y,z),判断点P是否在ABC内。这是游戏设计中一个常见的问题。需要注意的是,这里假定点和三角形位于同一个平面内。本文介绍三种不同的方法,由浅入深一内角和法连接点P和三角形的三个顶点得到三条线段PA,PB和PC,求出这三条线段与三角形各边的夹角,如果所有夹角之和为180度,那么点P在三角形内,否则不在,此法直观,但效率低下。二同向法假设点P位于三角形内,会有这样一个规律,当我们沿着原创 2022-05-18 10:28:01 · 640 阅读 · 0 评论 -
【OpenGl】万向节死锁的简易理解
【OpenGl】万向节死锁的简易理解看了一些博文,说的不够容易理解。我觉得反着理解比较容易。把一些博客里俯仰偏航的顺序倒着来看。万向节死锁的图片里,旋转顺序绕自身Z(蓝色)、自身Y(红色)旋转,而后绕自身Z(绿色)旋转。具体可以看结构,蓝色轴在外部各种转动下依然不动。这样的话根据左乘右乘的原理。旋转为ZYX,可以理解为分别绕自身Z Y X右乘。万向节死锁的意义就是在Y轴转90度的情况下,后面左乘Z(绕基坐标下Z)与右乘X(绕自身X,实际与基坐标Z一样了)实际效果是相同的,丧失了自由度。像下图一转载 2022-05-05 10:31:54 · 399 阅读 · 0 评论 -
【OpenGL】傅老师OpenGL学习
【OpenGL】傅老师OpenGL学习https://www.bilibili.com/video/av24353839?p=1https://learnopengl-cn.readthedocs.io/zh/latest/https://learnopengl.com/https://learnopengl-cn.github.io/01%20Getting%20started/03%20Hello%20Window/【ClassOne】 环境搭建跟着视频下载了两个库,在VS种添加库原创 2022-05-05 00:06:22 · 451 阅读 · 0 评论 -
西川善司的3D图形技术概念和渲染管线的处理
西川善司的3D图形技术概念和渲染管线的处理from: http://psv.tgbus.com/news/ynzx/201305/20130528094843.shtml西川善司的3D图形技术概念和渲染管线的处理一:3D图形的概念图1是3D图形的流程模型。这个虽然是对应DirectX 10/SM4的GPU流程模型,不过部分流程会根据GPU的不同,有时会有更细致的处理,有时也会做一些简略,这点敬请谅解。首先,介绍一下3D图形的处理为什么会变成这样的根本原因。会变成这个样子,是由于在漫长又短暂的实时3转载 2022-04-15 18:59:37 · 545 阅读 · 0 评论