DriectX3D/OpenGL/GLSL/Iray
文章平均质量分 60
Jackery_Shh
技术狂!
展开
-
UE4 打包ios包失败问题
~/Library/MobileDevice/Provisioning ProfilesUE4编译的时候,出现这个问题,后来删除了上面文件夹里的 mobileprovision文件,然后:进行如下设置,就可以进行UE4的打包了:不要勾选下面的地方:勾选automagic sign,并填写IOS Team ID,如下:...原创 2021-11-22 19:27:21 · 2371 阅读 · 0 评论 -
OpenGL中纹理坐标和顶点坐标表示
纹理坐标:(s,t,r,q),注意纹理分为1维,2维,3维,在纹理贴图的时候,如果顶点发生变化,相应的纹理坐标会发生相应的变化。顶点坐标:(x,y,z,w),注意变换方式以及相应的利用。OpenGL先关的几个函数。原创 2015-10-19 14:38:15 · 3145 阅读 · 0 评论 -
OpenGL教程
http://www.rastertek.com/tutgl40.htmlhttp://blog.csdn.net/weyson/article/details/47008843转载 2016-04-26 20:08:32 · 3374 阅读 · 0 评论 -
OpenGL纹理过滤以及纹理Wrapping mode
在三维动态场景中,如果一个纹理对象迅速地远离观察点而去,此时纹理图像必须随被投影的图像一起缩小,否则很产生抖动或者闪烁的现象。为了避免产生抖动或者闪烁,OpenGL必须对纹理图像进行过滤,适当的对它进行缩小,是它在映射到无替代 表面时,不会产生令人不快的人工视觉效果。为了避免这种效果,我们可以指定一系列预先过滤的分辨率递减的问题图像,成为mipmap。mipmap使用了一些精巧的方法把图像数据挑选到内存中。原创 2016-05-28 00:02:40 · 2675 阅读 · 0 评论 -
浅谈Mental Ray渲染引擎并行性机制
最近一段时间过的很充实,抽周末时间总结一下自己所学渲染技术的心得体会,希望可以帮助需要此知识的朋友,也作为备忘录以供查阅。在图形学领域,提高渲染效率及渲染时间,从而得到更好的交互体验,是每个技术人员应有的对技术精益求精的追求。对于多进程、多线程我们再熟悉不过了。在Mental Ray渲染引擎设计中,也引入了并行机制。从来快速取得照片般逼真的结果。在该引擎中,引入了两种并行机制:线程并行与网络并行。接下来对其进行简单的介绍:原创 2016-03-26 18:38:22 · 869 阅读 · 0 评论 -
OpenGL深度缓存算法
OpenGL深度缓存算法原创 2016-03-15 20:23:31 · 3733 阅读 · 1 评论 -
3D模型读取库:Assimp
Assimp(Open Asset Import Library)是一个支持读取多种模型资源的开源库,当前最新的版本是3.0版,支持读取以下类型的3D模型:Collada ( .dae )Blender 3D ( .blend )3ds Max 3DS ( .3ds )3ds Max ASE ( .ase )Wavefront Object ( .obj )Industry Foundation Classes (IFC/Step) ( .ifc )转载 2016-01-15 10:19:43 · 2084 阅读 · 0 评论 -
Mental Ray渲染--在摄像机动画中如何避免finalgather闪烁?
Final gathering 依赖于在finalgather点周围进行差值,以度量入射间接光照的光强。如果没有足够多的临近点,mental ray将自动增加一些。如果摄像机发生移动,这些临近点将加载不同的位置。如果部分场景很暗,或者照明的对比度较大,那么finalgather点的光照变化率就很高,这就可能导致画面闪烁。原创 2015-12-30 19:35:19 · 2247 阅读 · 0 评论 -
OpenGL中x64 debug下bmp图像导入出错解决方案
在win32环境下,已经提供了GLAUX库,但对于x64位,基本上该库没有提供64为支持。会出现以下错误:------ 已启动生成: 项目: OpenGL, 配置: Debug x64 ------1> OpenGL.cpp1>OpenGL.cpp(746): warning C4244: “return”: 从“WPARAM”转换到“int”,可能丢失数据1>OpenGL.obj : error LNK2019: 无法解析的外部符号 auxDIBImageLoadA,该符号在函数 "struc原创 2015-11-16 19:03:32 · 2267 阅读 · 0 评论 -
OpenGL中attribute、uniform、varying限定符
原创 2015-10-14 23:37:31 · 2144 阅读 · 0 评论 -
OSG+VS2015+Win10配置
转自:http://blog.csdn.net/wangshubo1989/article/details/515918021 官网下载源码 可以是zip,也可以通过github fork一个分支, http://www.openscenegraph.org/index.php/download-section/stable-releases2 下载第三方库 http://members.iine转载 2016-06-06 16:38:06 · 3014 阅读 · 1 评论 -
BumpMap、NormalMap的区别
bump mapping是为了制作浮雕效果。(In 1978, James Blinn presented a method of performing what is called bump mapping. Bump mapping simulates the bumps or wrinkles in a surface without the need for geometric modif转载 2016-08-02 14:56:34 · 1677 阅读 · 0 评论 -
Cmake 编译opengl开源库glfw工程及使用
Cmake 编译opengl开源库glfw工程及使用原创 2016-08-24 12:33:26 · 6367 阅读 · 0 评论 -
为什么你应该使用OpenGL而不是DirectX?
这是一篇很意思的博文,原文链接为:http://blog.wolfire.com/2010/01/Why-you-should-use-OpenGL-and-not-DirectX大家可以思考一下:why we choose a closed source API when the open source is equally good or better?当我们遇到其他游戏程序员并谈论我们使用OpenGL开发Overgrowth时总是会遇到怀疑的眼神。为什么要用OpenGL? DirectX才是未转载 2014-12-26 16:35:46 · 5383 阅读 · 2 评论 -
PBO是OpenGL最高效的像素拷贝方式吗?那你就大错特错了
原文转自:https://blog.csdn.net/weixin_42277689/article/details/82809284OpenGL ES作为移动设备的主要图形API,是客户端调用GPU的主要入口,不管是做游戏还是音视频,都给我们提供了强大的支持。 而在音视频领域,相信不少同鞋都有从FBO读取像素数据的需求,熟悉OpenGL ES的童鞋应该首先想到了glReadPixels...转载 2019-10-11 10:30:56 · 859 阅读 · 0 评论 -
OpenGL ES 着色器(shader)介绍
From :点击打开链接1. Shader Shader其实就是一段执行在GPU上的程序,此程序使用OpenGL ES SL语言来编写。它是一个描述顶点或像素特性的简单程序。在opengles中常用的shader有两种:vertex shader和fragment shader。Geometry Shader(几何着色器)是继Vertex Shader和Fragment Shader之后,由Sha...转载 2018-03-29 15:11:17 · 562 阅读 · 0 评论 -
关于opengles3.0图元重启
使用场景:当需要绘制两个以及两个不相互连接的多个图形的时候,需要使用。如需要绘制两个不相互连接的物体A和B,如何才能高效的绘制呢?在Opengles3.0提供了图元重启的功能,可以介绍调用开销;原创 2017-11-25 19:17:34 · 580 阅读 · 0 评论 -
GLSL常用内置函数汇总
all:在所有为真的时候,返回为真; any:在任一变量为真的时候,返回为真; dot:向量点乘 cross:向量的叉积 ceil(x):向上取整 如:ceil(3.5) 值为4 floor(x):向下取整 如:floor(3.5) 值为3 pow(x,y):求x的y次方 exp原创 2017-08-05 10:40:45 · 9076 阅读 · 0 评论 -
glStencilFuncSeparate
https://www.khronos.org/opengl/wiki/GLAPI/glStencilFuncSeparateglStencilFuncSeparate: set front and/or back function and reference value for stencil testingContents [hide] 1Function Definition2Descri转载 2017-06-21 11:54:54 · 543 阅读 · 0 评论 -
OpenGL获取支持的顶点属性个数
GLint nrVertexAttrib; glGetIntegerv(GL_MAX_VERTEX_ATTRIBS, &nrVertexAttrib); cout << "从系统支持的顶点属性最大为:" << nrVertexAttrib << endl;原创 2016-12-03 17:22:07 · 1956 阅读 · 1 评论 -
OpenGL DSA(Direct State Access)介绍
随着OpenGL4.5的发布,DSA(Direct State Access )成为了该版本的一个显著的特点。虽然DSA在早期的版本已经以扩展的形式存在于OpenGL中。DSA的出现,让OpenGL开发者一定程度上摆脱了对资源的绑定操作。使 OpenGL资源获取和资源更新更加形象化,通过程序更容易操作原创 2016-09-29 14:43:57 · 1753 阅读 · 0 评论 -
openGL 深度测试
openGL里常出现深度测试,一直不清楚。今天就来弄清楚。 (1)什么是深度? 深度其实就是该象素点在3d世界中距离摄象机的距离(绘制坐标),深度缓存中存储着每个象素点(绘制在屏幕上的)的深度值! 深度值(Z值)越大,则离摄像机越远。 深度值是存贮在深度缓存里面的,我们用深度缓存的位数来衡量深度缓存的精度。深度缓存位数越高,则精确度越高,目前的显卡一般都可支持16位的Z B转载 2015-10-19 16:05:17 · 736 阅读 · 0 评论 -
OpenGL超级宝典笔记——GLSL语言基础(转)
变量GLSL的变量命名方式与C语言类似。变量的名称可以使用字母,数字以及下划线,但变量名不能以数字开头,还有变量名不能以gl_作为前缀,这个是GLSL保留的前缀,用于GLSL的内部变量。当然还有一些GLSL保留的名称是不能够作为变量的名称的。基本类型除了布尔型,整型,浮点型基本类型外,GLSL还引入了一些在着色器中经常用到的类型作为基本类型。这些基本类型都可以作为结构体内部原创 2014-09-11 11:08:10 · 979 阅读 · 0 评论 -
你了解OpenEXR吗?
原文地址:http://www.x-graf.com/2012/07/more-about-exr/很多人对 OpenEXR 这种图像格式的了解仅限于:它是 32bit 的,它可以支持多通道,VFX 公司都在使用 EXR。这些都没错,但如果你的渲染器生成的是 tile 方式的多通道 EXR,则会降低 Nuke 的合成的效率。Tile vs. Scanline转载 2014-10-14 16:14:13 · 5041 阅读 · 0 评论 -
The Beauty of DirectX 11 --- constant buffer, buffered/structure buffer
原文转自:点击打开链接Constant Buffer Constant buffer(cb)是DX10中引入的概念,它取代了DX9时代GPU常量寄存器的概念,允许通过一块大小可变的buffer向shader提供常量数据,而不是之前数量非常受限的n个寄存器,这也是我们遇到的第一种可在shader着色阶段由HLSL访问的资源。 管线的每个可编程阶段都能同时访问一个或者几个cb,转载 2015-05-06 11:45:28 · 2441 阅读 · 0 评论 -
#pragma UNROLL 4
在图像处理程序中,你会看到类似于#pragma unroll 4这样的语句(注:在DX中,也许你会见到[unroll(3)] for(int i = 0;i < Total; i++)类似情况),现具体解释如下:语法:#pragma UNROLL(n)#pragma UNROLL告诉编译器一个循环中应该展开n次(其实我觉得是告诉编译器循环展开n次是安全的),有助于对那些不容易展开的循环有更大概率的进行软件流水。其实很多很多时候编译器会自动判断各种信息,但是这增加了冗余开销,反倒不如直接原创 2015-04-13 17:06:13 · 2741 阅读 · 0 评论 -
DX11之D3DXMatrixIdentity 函数
单位矩阵:在矩阵的乘法中,有一种矩阵起着特殊的作用,如同数的乘法中的1,我们称这种矩阵为单位矩阵.它是个方阵,从左上角到右下角的对角线(称为主对角线)上的元素均为1以外全都为0。对于单位矩阵,有AE=EA=A。 当用单位矩阵去乘以任何其它顶点向量时,都不会改变,但可方便地修改单位矩阵为旋转,平移和缩放矩阵。如图:D3DXMatrixIdentity 函数作用介绍:创建一个单位矩阵。定义:D3DXMATRIX *D3DXMatrixIdentity( D3DXMATRIX *原创 2015-03-26 10:11:24 · 1710 阅读 · 0 评论 -
OpenGL学习之材质RGB值和光源RGB值关系
材质的颜色与光源的颜色有些不同。对于光源,R、G、B值等于R、G、B对其最大强度的百分比。若光源颜色的R、G、B值都是1.0,则是最强的白光;若值变为0.5,颜色仍为白色,但强度为原来的一半,于是表现为灰色;若R=G=1.0,B=0.0,则光源为黄色。对于材质,R、G、B值为材质对光的R、G、B成分的反射率。比如,一种材质的R=1.0、G=0.5、B=0.0,则材质反射全部的红色成分,一半的绿色成分,不反射蓝色成分。也就是说,若OpenGL的光源颜色为(LR、LG、LB),材质颜色为(MR、MG、MB),那原创 2015-01-05 10:39:48 · 2128 阅读 · 1 评论 -
OpenGL学习笔记之法线向量
OpenGL学习笔记之法线向量需要注意的地方:1.使用glTranslate*函数或者glRotate*函数可以改变物体的外观,但法线向量并不会随之改变。然而,使用glScale*函数,对每一坐标轴进行不同程度的缩放,很有可能导致法线向量的不正确,虽然OpenGL提供了一些措施来修正这一问题,但由此也带来了各种开销。因此,在使用了法线向量的场合,应尽量避免使用glScale*函数。即使使用,也最好保证各坐标轴进行等比例缩放。2.还有一个地方就是,只能给顶点或者多边形定义法线向量,不可以对多边形的的原创 2014-12-30 12:01:12 · 4272 阅读 · 1 评论 -
glGenTextures(GLsizei n, GLuint *textures)函数说明
BOOL LoadTextures(IplImage *pImage, GLuint *pTexture){ int Status=FALSE; if(pImage != NULL) { Status=TRUE; glGenTextures(1, &pTexture[0]); //注意这里 glBindTexture(GL_TEXTURE_2D, pTexture[0]); glTexImage2D(GL_TEXTU转载 2014-12-29 16:12:10 · 2249 阅读 · 0 评论 -
OpenGL学习之glBindTexture函数
glBindTexture函数glBindTexture函数实现了将调用glGenTextures函数生成的纹理的名字绑定到对应的目标纹理上。该函数的声明如下所示:void glBindTexture(GLenum target, GLuint texture );函数参数的含义:target —— 纹理被绑定的目标,它只能取值GL_TEXTURE_1D或者GL_TEXTURE_2D;texture —— 纹理的名称,并且,该纹理的名称在当前的应用中不能被再次使用。原创 2014-12-29 16:16:23 · 2734 阅读 · 1 评论 -
DirectX11学习笔记
DirectX11学习笔记原创 2014-10-31 17:45:37 · 1272 阅读 · 0 评论 -
DrectX11学习笔记之Texture2D相关
/////////////////////////////////////////////////////////////////////////////////////有时候....有时候....我们不是输在大局上而是败在细节上......Fight>>Fight>>Fight大笑/////////////////////////////////////////////////////////////////////////////////////HRESULT CTex_DX11::LoadT原创 2014-11-19 18:56:57 · 2619 阅读 · 7 评论 -
关于 OpenEXR, 你应该要知道的几件事
在像 Pixar 这样的 animation studio,或是像 ILM 这样大规模的 VFX studio 里头,OpenEXR 扮演了一个非常重要的角色:工作过程中,可以用来预览或是再加工(合成)的图片文件。我们就如同其它的 studio 一样,也是使用EXR 作为内部的图档使用。公司里头,绝大部分的 exr 文件,都是 renderer 的产物。OpenEXR 是个可以用来乘载 HDR转载 2014-10-14 16:13:03 · 4524 阅读 · 0 评论 -
OpenEXR 文件
3ds Max 可以采用 OpenEXR 格式读取并写入图像文件。OpenEXR 既是图像文件格式也是常规打开源 API,用于读取和写入某些文件。OpenEXR 文件的文件名扩展名为 .exr 或 .fxr。查找有关 OpenEXR 信息的最佳位置是官方网站。以下是直接从 OpenEXR 主页上获取的内容:“OpenEXR 是高动态范围 (HDR) 的图像文件格式,由转载 2014-10-14 16:09:31 · 3043 阅读 · 0 评论 -
OpenGL_隐藏表面消除(Hidden-surface removal)
隐藏表面消除(Hidden-surface removal):是指消除实体物体被其他物体所遮挡的那部分(隐藏直线消除与此类似,有用线性模型);实现隐藏表面消除的最简单方法是使用深度缓冲区(又称z缓冲区)。深度缓冲区原理是把一个距离观察平面(通常是近侧裁剪平面)的深度值或者距离与窗口中的每个元素相关联;翻译 2014-10-09 14:15:57 · 2863 阅读 · 0 评论 -
D3D11_TEXTURE_ADDRESS_MODE(纹理寻址模式)
最近在学习D3D11,下面是所查找的一些资料的翻译,如果有什么不合适的地方,欢迎指正。SamplerState samColor{ Filter = MIN_MAG_MIP_LINEAR; AddressU = Clamp; AddressV = Clamp;};翻译 2014-10-22 11:49:44 · 2922 阅读 · 3 评论 -
Bilateral Filtering(双边滤波)算法研究
1. 简介图像平滑是一个重要的操作,而且有多种成熟的算法。这里主要简单介绍一下Bilateral方法(双边滤波),这主要是由于前段时间做了SSAO,需要用bilateral blur 算法进行降噪。Bilateral blur相对于传统的高斯blur来说很重要的一个特性即可可以保持边缘(Edge Perseving),这个特点对于一些图像模糊来说很有用。一般的高斯模糊在进行采样时主要考虑了像素间的空间距离关系,但是却并没有考虑像素值之间的相似程度,因此这样我们得到的模糊结果通常是整张图片一团模糊。Bila原创 2015-05-27 11:15:59 · 3874 阅读 · 1 评论 -
投影矩阵的推导(Deriving Projection Matrices)(转)
概述: 什么是投影? 计算机显示器是一个二维表面,所以如果你想显示三维图像,你需要一种方法把3D几何体转换成一种可作为二维图像渲染的形式。那也正是投影做的。拿一个简单的例子来说,一种把3D对象投影到2D表面的方法是简单的把每个坐标点的z坐标丢弃。原创 2015-05-25 14:38:46 · 5833 阅读 · 0 评论 -
并行程序设计---cuda memory
CUDA存储器模型:GPU片内:register,shared memory;host 内存: host memory, pinned memory.板载显存:local memory,constant memory, texture memory, texture memory,global memory; register: 访问延迟极低; 基本单元:register file (32bit/each) 计算能力1.0/1.1版原创 2015-06-25 16:27:36 · 1401 阅读 · 0 评论