OpenGL ES
文章平均质量分 82
jaccen
这个作者很懒,什么都没留下…
展开
-
CG专业术语
001. Physically Based Rendering【英文缩写】PBR【中文翻译】基于物理的渲染【补充说明】大型3D游戏常用的一种渲染流程,有利于保证画面效果的真实感。【相关资料】《Physically Based Rendering: From Theory to Implementation》002. Local Illumination【英文缩写】未知【中文翻译】局部光照【补充说明】光源直接作用于模型表面的光照效果。003. Global Il..转载 2020-12-25 20:40:12 · 1945 阅读 · 0 评论 -
骨骼蒙皮动画(SkinnedMesh Animation)的实现
1、简介骨骼蒙皮动画,简称骨骼动画,因其占用磁盘空间少并且动画效果好被广泛用于3D游戏中,它把网格顶点(皮)绑定到一个骨骼层次上面,当骨骼层次变化之后,可以根据绑定信息计算出新的网格顶点坐标,进而驱动该网格变形;一个完整的骨骼动画一般由骨架层次、绑定网格以及一系列关键帧组成,一个关键帧对应于骨架的一个新状态,两个关键帧之间的状态可以通过插值得到;下面介绍骨骼蒙皮动画在SPE中的实现细节,包转载 2017-11-30 11:52:15 · 3391 阅读 · 0 评论 -
骨骼蒙皮动画(Skinned Mesh)的原理解析(二)
2)蒙皮信息和蒙皮过程2-1)Skin info的定义上文曾讨论过,SkinnedMesh中Mesh是作为皮肤使用,蒙在骨骼之上的。为了让普通的Mesh具有蒙皮的功能,必须添加蒙皮信息,即Skininfo。我们知道Mesh是由顶点构成的,建模时顶点是定义在模型自身坐标系的,即相对于Mesh原点的,而骨骼动画中决定模型顶点最终世界坐标的是骨骼,所以要让骨骼决定顶点的世界坐标,这就要将转载 2017-11-30 11:50:53 · 874 阅读 · 0 评论 -
骨骼蒙皮动画(SkinnedMesh)的原理解析(一)
一)3D模型动画基本原理和分类3D模型动画的基本原理是让模型中各顶点的位置随时间变化。主要种类有Morph(变形)动画,关节动画和骨骼蒙皮动画(SkinnedMesh)。从动画数据的角度来说,三者一般都采用关键帧技术,即只给出关键帧的数据,其他帧的数据使用插值得到。但由于这三种技术的不同,关键帧的数据是不一样的。Morph(渐变,变形)动画是直接指定动画每一帧的顶点位置,其动画关键转载 2017-11-30 11:49:58 · 592 阅读 · 0 评论 -
shadow map
参考 1、Common Techniques to Improve Shadow Depth Maps 2、Tutorial 16 : Shadow mapping 3、Shadow Mapping 4、Shadow Mapping Algorithms 5、Shadow转载 2017-11-06 11:20:14 · 2616 阅读 · 0 评论 -
OpenGL 射线 拾取
简介:OpenGL中鼠标射线拾取,就是通过鼠标点击屏幕产生的坐标,通过变换到3D坐标空间,然后从摄像机原点与该3D空间坐标产生一个射线(ray),通过该射线与3D世界中的物体做相交检测,即可实现3D物体的拾取。实现:从OpenGL—坐标变换中可以知道,当前鼠标的坐标属于视口坐标,所以需要取得当前鼠标点击的点在3D世界中的坐标位置,也就是要将当前鼠标的点通过逆变换,从视口坐标变换到世界坐转载 2017-10-25 19:38:36 · 2484 阅读 · 0 评论 -
GLSL实现Glow效果
引言 从GraphicsLab Project项目立项以来,一直都在忙着搭建Shader的实验环境,现在基本的实验环境已经搭建完毕,所以就试着使用它来编写一些效果。本篇文章就将向大家讲述,如何在OpenGL中,使用GLSL编写出辉光效果。辉光(Glare,Glow) 辉光效果,转载 2017-10-12 15:04:43 · 8161 阅读 · 2 评论 -
GPU渲染管线与shader
1 几何阶段(顶点shader处理这部分)模型坐标空间-世界坐标空间-观察坐标空间-屏幕坐标空间其中从观察空间 到 屏幕空间需要经过3步(CVV单位立方体,规范立方体)a用透视变换矩阵把顶点从视锥体中变换到裁剪空间(齐次空间,用齐次坐标表示);b在 裁剪空间进行图元裁剪;(这里就是视域剔除View Frustum Culling),然后齐次空间除w把点转换到CVV中翻译 2017-06-12 17:00:35 · 1370 阅读 · 0 评论 -
OpenGL简介-基于VBO绘制三角形
现在第一个例子:绘制三角形Initial OpenGL CanvasLoad 绘制所需的資料 / 建立儲存資料的資料結構Initial OpenGL state 與 各種 OpenGL buffer objectsDraw and Display接 受各種事件,根據事件變更資料結構的內容、OpenGL State 或是 OpenGL buffer objects反覆流程 4 與流程 5 直原创 2017-04-21 08:31:59 · 1884 阅读 · 0 评论 -
GLES效果
原理参考自的 BugRunner 博客原图:效果图:[cpp] view plain copyvoid main(void) { vec2 uv = gl_FragCoord.xy / sketchSize.xy; vec3 c = t转载 2017-11-22 09:29:07 · 513 阅读 · 0 评论 -
LOD基本思想
参考文章 http://blog.sina.com.cn/s/blog_5e3213f30100zxet.html LOD技术简述 http://blog.sina.com.cn/s/blog_458f87120100q9eg.html LOD技术概述 http://my.oschina.net/u/997451/blog/122649 LOD裂缝问题解决方法 http://blo转载 2017-12-15 10:49:33 · 4884 阅读 · 0 评论 -
计算p到线段最短距离
原创 2019-08-29 10:54:07 · 308 阅读 · 0 评论 -
The Mobile Diary: Experimentation with ARCore v1.9.0 (Pt. 1)
from:https://medium.com/@dodgegt8/the-mobile-diary-experimentation-with-arcore-v1-9-0-pt-1-e3b1f4126b4cIntroductionHello there people of the internet! My name is Michael and I love mobile app deve...转载 2019-07-22 10:16:59 · 362 阅读 · 0 评论 -
OpenGL环境搭建
其实这个在以前的博文中介绍了很多次了,不过有基于GLut的有基于glew的,这次再详细记录一下以及它们的区别,以及当前最流行的选择; 其实GLUT跟glew都没问题, 只是目前主流会采用glad,窗口选用GLFW或者SDL,不过我还是喜欢GLFW + GLAD组合。1、GLAD 由于OpenGL只是一个标准规范,具体实现是有驱动开发提供,也就是显卡制造方...原创 2019-05-17 10:29:01 · 821 阅读 · 0 评论 -
LearnOpenGL(转自http://surfsky.cnblogs.com )
OpenGL基础知识: https://www.opengl.org/:OpenGL官方网站。 https://www.opengl.org/registry/:包含OpenGL各版本的规范和扩展。 https://learnopengl-cn.github.io https://khronos.org/registry/OpenGL/specs/gl/glspe...转载 2018-08-08 20:18:08 · 530 阅读 · 0 评论 -
全景图剪切程序Sphere2Cube(一张全景生成六张立方体天空盒图Cubmap)
1.介绍 将一张全景图片贴在立方体天空盒上,需要uv进行映射,分别对应六个面的纹理; 2.实现 查阅了网上,发现大概有如下几种实现方式;基于opencv进行分割, 保存出6张图片 基于opengl,通过改变LookAt摄像机方向,获取6张texture通过FBO,再通过glreadpixel读回数据进行保存;由于直接需要将数据做cubmap,所以我实现的方式是:将全景图片分...原创 2018-07-26 16:31:57 · 14234 阅读 · 1 评论 -
Cross-Platform Engine
1. Introduce based on C++、OpenGLES 3.02. Archive3. Feature原创 2018-02-26 11:36:45 · 597 阅读 · 0 评论 -
Android YUV
背景Android 开发中,当得到一张yuv图需要显示时,之前的做法是利用ffmpeg自带的方法将其转换为RGB565或者RGBA,然后将RGB数据拷贝到aNativeWindow的图像缓冲区,达到显示的目的。这样做比较耗CPU, 最近在阅读ijkplayer源码时,整理了一下OpenGL直接渲染YUV420P相关流程,参考网上一些代码,总结了一个最简单的小例子。例子下载地址转载 2017-12-18 15:18:35 · 1831 阅读 · 0 评论 -
OpenGL渲染YUV数据
本文主要介绍使用OpenGL ES来渲染I420(YUV420P) , NV12(YUV420SP)的方法,关于YUV的知识,可以看这里《YUV颜色编码解析》,同样会用到一些简单的OpenGL shader知识,可以看看OpenGL的着色器语言。为了书写方便,以下所谈的OpenGL特指OpenGL ES。OpenGL ES是OpenGL的精简版本,主要针对于手机、游戏主机等嵌入式设备,它提供了一转载 2017-12-18 13:59:43 · 10940 阅读 · 2 评论 -
Learning Modern OpenGL
IntroductionOk... so you want to learn modern OpenGL. Great! But what does it really mean and what options are available? Do you have to buy expensive books about this technology, or maybe some ba转载 2017-04-05 17:44:25 · 774 阅读 · 0 评论 -
Opengl2.0 + MS3D实现骨骼动画
MS3D一个比较成熟的3D模型格式,其较小的数据量一直备受欢迎,但是很多模型制作工具对其支持不够好,目前主要通过Milkshape 3D进行预览以及一些编辑;多年前自己解析使用过,前段时间有遇到;本文将详细描述使用该格式进行解析绘制的过程,以及遇到的问题,期望做一个备忘录;1、MS3D介绍2、MS3D格式3、MS3D解析4、MS3D采用shader实现骨骼动画5原创 2017-01-20 11:22:03 · 1905 阅读 · 0 评论 -
FBO进行多纹理拼接
有个需求,要将多张纹理拼接到一张,可以设定拼接区域;由于OGLES2.0,不支持glReadBudder(), glblitframebuffer().就考虑采用Render to Texture的方式(1)创建一张空Texture用于保存最终结果 defualtTex。 glGenTextures(1, &defualtTex);glBindTexture(GL_原创 2016-03-14 13:57:09 · 3459 阅读 · 3 评论 -
关于读取Texture内容
以下为几种数据拷贝方式:(1)glCopyPixels 直接将屏幕像素拷贝到framebuffer,没有经过内存,严格来说不算拷贝texture方式(2)glReadPixels 从帧缓存中读取一个像素块到内存data中, 可以结合FBo使用(3)glGetTexImage()根据纹理Id,读取数据到内存(1)glGetTeImage使用比较方便:但是速度较慢。exp1原创 2016-03-22 18:34:05 · 9903 阅读 · 2 评论 -
Offscreen Rendering and Multisampling With OpenGL
It has been for a while since my last post. I was enjoying with my senior project, “Accelerating Map Rendering with GPU”. In this project, my friend and I modified Mapnik, an opensource map rendering,转载 2016-03-10 10:11:39 · 1153 阅读 · 0 评论 -
OpenGL 系列学习之一
一直计划先出一套OpenGL学习教程,可是一直时间比较紧张,需要做的事情太多,一直拖延了,希望每天挤出一点时间记录点东西。最终会将代码都提交到GitHub ,也使用Cmacke跨平台编译,不过目前只针对Windows平台进行调试。本系列主要基于以下实现,(1)Visual 2013(2)GLEW、GLFW and GLM 、FreeImage 介绍: http://bl原创 2016-01-06 23:25:57 · 591 阅读 · 0 评论 -
3D Engine 开发
基于Opengles 3D引擎原创 2015-11-19 21:49:10 · 1492 阅读 · 1 评论 -
OpenGLES 3.0
现在已经有很多手机陆续支持openGLES3.0了,也总结一下ES3.0的优势,计划引擎支持支持ES3.0, 因为OpenglEs3.0 向后兼容ES2.0.Andriod4.3以上版本的设备和使用IOS7的iphone 5s都已经支持OpenGLES3.0;OpenGLES 3.0 的新特性:1、渲染管线多重增强,实现先进视觉效果的加速,包括遮挡查询(Occlusion Qu原创 2015-11-22 11:08:12 · 5371 阅读 · 0 评论 -
OpenGLES 管线编程介绍
OpenGL ES 2.0可编程管道:上图橙色部分为可编程部分,主要为vertex shader与Fragment shader,(在GLES 3.1中还加入了Geometry Shader,可以自由增减顶点)整个管道包含以下两个规范:1)OpenGL ES 2.0 API规范2)OpenGL ES shading Language (GLSL)详细流程如图:原创 2015-09-02 11:24:06 · 1075 阅读 · 0 评论 -
GLSL. 语法基础
GLSL语法跟C语言非常相似:1.数据类型:GLSL包含下面几种简单的数据类型float bool :false or tureint向量:vec {2,3,4} 长度为2, 3, 4的float向量bvec {2,3,4} 长度为2, 3, 4的bool向量ivec {2,3,4} 长度为2, 3, 4的int向量矩阵:m转载 2014-11-05 23:53:20 · 693 阅读 · 0 评论 -
OpenGL中的数据——Buffer
OpenGL中主要包括了两种数据——Buffer和Texture。Buffer用于储存线性数无类型据块,可以看成普通的内存块,而Texture则用于储存多维数据,一般储存图像或者其他数据。BufferOpenGL中有很多绑定点,Buffer绑定在绑定点使用。使用glGenBuffers来生成一个Buffer的id。使用glBindBuffer来绑定一个Buffe转载 2016-03-24 23:24:13 · 5003 阅读 · 0 评论 -
三维图像技术与OpenGL基础理论
英文原文:3D Graphics with OpenGL Basic Theory中文译文:三维图像技术与OpenGL基础理论1. 计算机图像硬件1.1 GPU(图像处理单元)如今,计算机拥有用来专门做图像处理显示的GPU模块,拥有独立的图像处理储存(显存)。1.2 像素和画面任何图像显示都是基于栅格的格式。一个栅格既是一张二维的转载 2016-03-24 23:27:53 · 2062 阅读 · 0 评论 -
OpenGL, OpenGL ES, WebGL, GLSL, GLSL ES APIs 列表
是一个跨平台标准化的2D/3D图形API。OpenGL 2.1提供对GLU和GLUT的支持。是相应的对于嵌入式系统,尤其是对于Android,iOS设备以及网页浏览器(WebGL)的一套标准。是“OpenGL for the web”(用于网络的OpenGL)。它使得网页可以利用系统显卡来加速3D图像生成,并被广泛应用于渲染 HTML5 Canv转载 2016-03-25 07:36:43 · 2395 阅读 · 0 评论 -
Modern OpenGL 07 – More Lighting: Ambient, Specular, Attenuation, Gamma
In this article we will continue to implement lighting. We will implement the ambient and specular components of the Phong reflection model, attenuation, and gamma correction.Accessing The Cod转载 2016-07-21 23:39:55 · 891 阅读 · 0 评论 -
JNI gles创建
本教程适用于学习opengles,采用c++语言。基于Android平台。创建工程可以使用android-studio,eclipse去创建一个工程,这里我使用命令行(Android的环境配置略)。# create android projectmkdir GlesTutorialcd GlesTutorialandroid create project --target a转载 2016-07-05 21:56:59 · 716 阅读 · 0 评论 -
如何学习OpenGL
A little guide about modern OpenGL and why it gives us so much value.Shaders + Cube Env Map + Phong LightingIntroductionOk... so you want to learn modern OpenGL. Great! But what does转载 2016-06-08 10:20:08 · 2315 阅读 · 0 评论 -
Andriod JNI中使用GLM
由于GLM不需要预编译,可以直接将下载的GLM放入JNI目录中,但是编译会存在:jni/src/glm/glm.hpp:86:18: fatal error: limits: No such file or directory because by default the NDK uses a stripped-down C++ runtime library.You w原创 2016-04-18 12:16:03 · 2044 阅读 · 0 评论 -
主流GPU纹理格式
本文主要介绍主流移动设备GPU,以及所支持的压缩格式1.GPU分类1.1 Imagination Technologies的PowerVR SGX系列 代表型号:PowerVR SGX 535、PowerVR SGX 540、PowerVR SGX 543MP、PowerVR SGX 554MP等 代表产品 :Apple iPhone全系、iPad全系,三星I原创 2016-04-18 10:45:39 · 6126 阅读 · 0 评论 -
Faster Alternatives to glReadPixels and glTexImage2D in OpenGL ES
In the development of Shou, I've been using GLSL with NEON to manipulate image rotation, scaling and color conversion, before send them to video encoder.So I need a very efficient way to transfer转载 2016-04-08 14:05:39 · 2084 阅读 · 0 评论 -
OpenglES2.0 游戏开发-上卷 源码
https://yunpan.cn/cqsFTvfqx3aAS 访问密码 89dc原创 2016-03-26 23:12:47 · 2595 阅读 · 2 评论 -
GPGPU::数学基础教程
作者:Dominik Göddeke 译者:华文广 制作:physdev.com 发布:GameRes.comContents介绍准备条件硬件设备要求软件设备要求两者选择初始化OpenGLGLUTOpenGL 扩展OpenGL 离屏渲染GPGPU 概念1: 数组 = 纹理在CPU上建立数组在 GPU上生成浮点纹理数组索引与纹理坐标一一对应使用纹转载 2016-04-07 19:46:06 · 1116 阅读 · 0 评论