计算机图形学
文章平均质量分 69
zhao_92221
这个作者很懒,什么都没留下…
展开
-
cg语言 SV_POSITION vs POSITION
在unity3d的shader lab开发中无意间接触到了 SV_POSITION这个语义绑定(semantics binding) 之前学习的cg语言vertex shader或者fragment shader中输入输出语义绑定都是用的POSITION。 有疑惑必须刨根问底才安心,所以查了N多帖子,寻找到了大概的线索。 回答是SV_前缀的变量代表system value,在DX10以后的原创 2015-07-08 01:58:30 · 15939 阅读 · 7 评论 -
阴影体(shadow volume)
Shadow mapping 的原理:一个物体之所以会处在阴影当中,是由于在它和光源之间存在着遮蔽物,或者说遮蔽物离光源的距离比物体要近,这就是 shadow mapping 算法的基本原理。Pass1: 以光源为视点,或者说在光源坐标系下面对整个场景进行渲染,目的是要得到一副所有物体相对于光源的 depth map (也就是我们所说的shadow map ) , 也就是这副图像中每个象素的值代表着转载 2015-07-04 17:59:39 · 3262 阅读 · 1 评论 -
游戏引擎中三大及时光照渲染方法介绍(以unity3d为例)
重要:在目前市面上常见的游戏引擎中,主要采用以下三种灯光实现方式: 顶点照明渲染路径细节 Vertex Lit Rendering Path Details 正向渲染路径细节 Forward Rendering Path Details 延迟光照渲染路径的细节 Deferred Lighting Rendering Path Details以unity3d为例,以下将详细讲解三种灯光渲染方式的翻译 2015-07-06 17:30:40 · 1030 阅读 · 0 评论 -
一种软阴影的实现方法
www.GameDev.net 作者:Anirudh.S Shastry http://www.gamedev.net/reference/articles/article2193.asp 译者:赟赟 介绍 最初,动态阴影技术只有在有限的几种情况下才能实现。但是,随着强大的可编程图形硬件的面世,动态阴影技术已经完全取代了以前的如light map这样的静态阴影技术及像projected sh转载 2015-07-05 01:32:30 · 2792 阅读 · 0 评论 -
四元数指数映射旋转参数化的实际应用(Practical Parameterization of Rotations Using the Exponential Map)
四元数指数映射旋转参数化的实际应用哪吒三太子 2016/3/26 于上海卢湾下面为本文使用术语表,表中所有词条大多直接采用英文术语,请各位读者自行伸缩去取,笔者在此不做所谓”直译”. - DOF(degree-of-freedom) 旋转自由度 - ODE(ordinary differential equation) 常微分方程 - transformation m原创 2016-03-30 22:03:12 · 3254 阅读 · 1 评论 -
高度图构造地形
地形生成中,最简单的要数高度图构建地形的方法,同时这种方法也称之为蛮力法。生成流程:1.准备一张纹理,数据编码为高度,你可以同时编码进去垂直与高度轴的那个超平面上的坐标点。这张图我是用了一张128x128大小的纹理。格式为RAW的。我只在里面保存了高度值。2.读取纹理,根据数据格式设定高度值。此法很简单,就是根据一个额外的高度信息把一张平面“变成”高低不同的“曲面”。不过这种方法首先依赖一个存储高度原创 2015-06-30 23:15:34 · 1165 阅读 · 0 评论 -
opengl 4.X (离屏渲染-后台渲染)off-screen rendering
openGL可以渲染屏幕的framebuffer,自然可以渲染不直接显示的framebuffer,把数据存入非直接显示的framebuffer中以便后续的渲染需求,或者直接存入纹理贴图texture都是非常灵活的。 需要注意的是因为不同平台数据结构不同的关系,你需要针对不同平台,创建和设置针对的framebuffer格式。 比如如果你使用默认的framebuffer那么,他的大小就是窗口或屏幕的原创 2015-06-24 10:40:24 · 5577 阅读 · 1 评论 -
openGL4.X 深度测试(depth testing) framebuffer中
深度测试 depth testing作为openGL渲染的最后一步,在fragment shader之后,依次进行 裁剪测试->模板测试->深度测试当深度测试开启之后(默认关闭),gl会把每个从fragment shader中生成的fragment(像素片段)的深度值与frame buffer中相应的fragment的深度值进行比较。如果通过了深度测试(由你定义通过的条件)那么frame buffe原创 2015-06-18 14:57:11 · 1934 阅读 · 0 评论