opengl研究
延卿
我的qq,1256174071,有需要的朋友可以联系我
展开
-
投影记录
平均值/* Volume fragment shader*/#version 330 coreuniform sampler3D volume;in vec4 origin;in vec3 dir;uniform float ww;uniform float wl;out vec3 color;void main(){ /* Perform ray/volume intersection test */ //bounding box vec3 bmin原创 2020-05-14 10:33:38 · 301 阅读 · 0 评论 -
MD5SkeletalAnimation
Skeletal Animation implement with md5 file and Direct3D.骨骼动画核心算法和实现 目标:真正理解骨骼动画原理和核心算法 环境:VS2010及以上版本,Direct3D SDK,编译有问题的请联系我:[email protected] qq:1021900404。 运行成功后可以拖拽鼠标调整相机,按Enter键实现不同动画的切换。 本项目...转载 2019-01-08 14:00:31 · 227 阅读 · 0 评论 -
视图矩阵ViewMatrix一些概念
讨论下View矩阵图1上图黑色是我们世界坐标系,浅蓝色是摄像机坐标系。视图矩阵作用一句话简明表达就是世界坐标系转换到摄像机坐标系。从图1 黑色的世界坐标系转换到浅蓝色的摄像机坐标系。公式1: 先说概念,我们根据摄像机的位置和旋转信息可以构造出摄像机的坐标系矩阵C,但是这个C你单纯的乘上世界矩阵,是错误的。因为你的变化还是在世界坐标系做平移和旋转。我们要的目的是把...转载 2019-01-02 12:12:00 · 2117 阅读 · 0 评论 -
屏幕坐标到归一化坐标的转换
1.由屏幕坐标转换到归一化坐标Point2 dc_to_ndc(const Point2& pt_dc, int width, int height) { double x = (pt_dc.x + 0.5) / (double)width; double y = (pt_dc.y + 0.5) / (double)height; return Point2(x...转载 2019-01-02 11:23:37 · 4818 阅读 · 0 评论 -
New程序媛OpenGL全解析之—向量
向量和矩阵是游戏开发的必备基础。好多小伙伴跟丹丹反映每次文章过长,太干所以之后的推文,丹丹尽量再模块化。其实又长又干的文章要花费丹丹的不少心血,希望小伙伴们喜欢的话帮忙分享,或者给予点赞鼓励哦好啦,来看知识点!向量:有方向有大小的矢量。游戏中速度、加速度、力、位移等就是使用向量来描述的。此处大家需要注意的是,向(矢)量只要方向和大小不改变,可以移动到任意的位置,所以向量的起...转载 2019-01-02 09:56:41 · 272 阅读 · 0 评论 -
qt opengl示例
#include <QObject>#include <QOpenGLWidget>#include <GL/gl.h>#include <GL/glu.h>#include <QOpenGLFunctions>#include <QOpenGLShaderProgram>#include <QOpenGLT...转载 2019-01-04 15:07:20 · 1216 阅读 · 0 评论 -
OPENGL 矩阵坐标系变换
所谓的坐标系变换就是调用某个函数后得到的坐标。关系如下图:(当时小谢给我画的~)绿色框框内的表示需要自己写代码的~ 齐次坐标(Homogeneous coordinates) 三维顶点(x,y,z),引入新分量w,得到(x,y,z,w)。若w==1,则向量(x, y, z, 1)为空间中的点。 若w==0,则向量(x, y, z, 0)为方向。二者区别:对于...转载 2019-01-04 10:24:51 · 833 阅读 · 0 评论 -
体绘制之光线投射算法(附源码)
一、原理Levoy在1988年提出了光线投射(ray-casting)算法[1],其基本原理是:从屏幕上每一个像素点出发,沿着视线方向发射出一条光线,当这条光线穿过体数据时,沿着光线方向等距离采样,利用插值计算出采样点的颜色值和不透明度;接着按照从前到后或从后到前的顺序对光线上的采样点进行合成,计算出这条光线对应的屏幕上像素点的颜色值。其原理如图1所示。图1光线投射原理 该算法转载 2017-05-05 17:21:15 · 2734 阅读 · 1 评论 -
WebGL中gl.drawArrays()与gl.drawElements()对比
本次我们来绘制一个这样的网格(5*10),我们采用程序实现。为什么绘制网格?!因为网格可以绘制很多不同的对象,比如球、圆环……,对于我们地理信息科学专业来说,地球就是我们关注的重点……通过绘制这个图形,我们来学习一下:drawArrays()和gl.TRIANGLESdrawArrays()和gl.TRIANGLE_STRIPdrawElements()和gl.TR转载 2017-05-05 16:46:28 · 1141 阅读 · 0 评论 -
推导相机变换矩阵
版权声明:本文为博主原创文章,未经博主允许不得转载。目录(?)[+]-潘宏-2009.12.31-本人水平有限,疏忽错误在所难免,还请各位数学高手、编程高手不吝赐教-email: [email protected] 一些网友写信给我希望能够了解固定流水线中世界空间到相机空间变换矩阵的具体推导过程。其实之前我在《向量几何在游戏编程中的使用6》中已经简单转载 2017-05-05 16:16:01 · 423 阅读 · 0 评论 -
【GLSL教程】(一)图形流水线
这是一些列来自lighthouse3d的GLSL教程,非常适合入门。我将边学习边翻译该教程的内容,同时记录在这里,方便以后查询。流水线概述下图描述了一个简化的图形处理流水线,虽然简略但仍然可以展示着色器编程(shader programming)的一些重要概念。一个固定流水线包括如下功能:顶点变换(Vertex Transformation)这里一个顶点是一个信转载 2017-05-03 19:07:52 · 639 阅读 · 0 评论 -
OpenGL ES着色器语言之变量和数据类型
所有变量和函数在使用前必须声明。变量和函数名是标识符。 没有默认类型,所有变量和函数声明必须包含一个声明类型以及可选的修饰符。变量在声明的时候首先要标明类型,后边可以跟多个变量,之间用逗号隔开。很多情况下,变量在声明的时候可以使用等号“=”进行初始化。 用户定义类型可以使用struct,在结构体中所有变量类型都必须是OpenGL ES着色器语言定义的关键字。Op转载 2017-05-03 19:01:10 · 639 阅读 · 0 评论 -
GLSL 纹理贴图
简单的纹理贴图(Simple Texture)为了在GLSL中应用纹理,我们需要访问每个顶点的纹理坐标。GLSL中提供了一些属性变量,每个纹理单元一个:attribute vec4 gl_MultiTexCoord0;attribute vec4 gl_MultiTexCoord1;attribute vec4 gl_MultiTexCoord2;attribute vec转载 2017-05-03 18:53:45 · 391 阅读 · 0 评论 -
GLSL 其他说明
法线矩阵在很多顶点shader中都用到了gl_NormalMatrix。这里将介绍这个矩阵是什么,以及它的作用。大部分计算是在视图空间内完成的,主要原因是光照的运算要放在这个空间内,否则一些依赖观察点坐标的效果,比如镜面反射光就很难实现。所以我们需要将法线变换到视图空间。变换一个顶点到视图空间的方法如下:vertexEyeSpace = gl_ModelViewMatrix *转载 2017-05-03 18:52:45 · 489 阅读 · 0 评论 -
GLSE 语句和结构体
OpenGL ES着色器语言的程序块基本构成如下:语句和声明函数定义选择(if-else)迭代(for, while, do-while)跳跃(discard, return, break, continue)1函数定义 着色器是由一系列全局声明和函数定义组成的。函数声明规范如下: // prototype转载 2017-05-03 18:51:58 · 906 阅读 · 0 评论 -
GLSL 内建变量
有些OpenGL ES操作在顶点处理器和片元处理器之间有特定的功能,有些在片元处理器之后又特定的功能,着色器通过内建变量同这些固定功能进行通信。 在OpenGL ES中,内建特殊变量部分来自顶点着色器的输出变量,部分来自于片元着色器的输入变量和输出变量。不同于用户定义的varying变量,内建特殊变量不用在顶点语言和片元语言之间保持严格的一对一对应。相反,两个语言各有自己的一套变转载 2017-05-03 18:48:43 · 594 阅读 · 0 评论 -
GLSL 内建函数
OpenGL ES着色语言为标量和向量操作定义了一套内建便利函数。有些内建函数可以用在多个类型的着色器中,有些是针对固定硬件的,所以这部分只能用在某个特定的着色器上。 内建函数基本上可以分为一下三类:(1)它们使用一些简便的方式提供必要的硬件功能,如材质贴图。这些函数单独通过着色器是无法模拟出来的。(2)它们展示了一些可以常简单的写入的繁琐操作(clamp, mix等),但转载 2017-05-03 18:47:54 · 363 阅读 · 0 评论 -
OpenGL 各个shader的作用和区别
OpenGL4.0发布了Tessellation shader(Control + Evaluation shader)。到OpenGL4.* 为止,现在OpenGL已经支持了5种不同类型的shader。1.Vertex Shader,简称VS2.TESS Control Shader (D3D11 叫Hull shader),简称TCS3.TESS Evaluation Shad转载 2017-05-03 18:47:16 · 2305 阅读 · 0 评论 -
OpenGL ES2.0 的三种变量类型(uniform,attribute和varying)
最近研究了下OpenGL ES2.0的programing guide。看到shader里面声明的变量一般有三种类型,特地为此做个小的总结。 1.uniform变量uniform变量是外部application程序传递给(vertex和fragment)shader的变量。因此它是application通过函数glUniform**()函数赋值的。在(vertex和fragment)s转载 2017-05-03 18:38:20 · 418 阅读 · 0 评论