社区
游戏开发
帖子详情
有关阴影映射(shadow map)的问题
彩阳
2015-04-06 11:11:08
我最近在研究shadow map。这里做了一个类似的例子,但是发现了一些问题:
1、我发现,当我的摄像机距离场景较远的时候,阴影裁剪了。如果距离较近,阴影不会裁剪。
2、我发现,当光源的角度处于非常刁钻的地方,就会出现深度图拖影现象。
下面是在光源的角度观察场景:
有什么办法能够解决这些问题呢?
...全文
359
2
打赏
收藏
有关阴影映射(shadow map)的问题
我最近在研究shadow map。这里做了一个类似的例子,但是发现了一些问题: 1、我发现,当我的摄像机距离场景较远的时候,阴影裁剪了。如果距离较近,阴影不会裁剪。 2、我发现,当光源的角度处于非常刁钻的地方,就会出现深度图拖影现象。 下面是在光源的角度观察场景: 有什么办法能够解决这些问题呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ljb1672
2015-04-30
打赏
举报
回复
查看下我的例子吧,应该有更详细的注解。 百度csdn ljb1672的资源。
彩阳
2015-04-06
打赏
举报
回复
第一个问题解决了。是我的片元着色器没有写好。照抄了国外的,但是发现不那么适合。所以我改成了自己的写法:
使用Qt实现的
阴影
映射
(源代码)
要实现基于OpenGL ES 2.0的
阴影
映射
,要攻克这三个技术难点: 1、 熟练操作FBO。帧缓存FBO是需要熟练操控的,因为FBO可以很快地将深度图写入一块显存中,然后作为纹理渲染到真实的场景中。 2、 掌握着色器的使用。由于OpenGL ES 2.0只允许使用着色器来对其进行渲染,因此对着色器的书写熟练程度要求较高。 3、 掌握将float深度数据分拆成vec4再将vec4合并成float的操作。这个已经成为业内熟练掌握的技能之一了,网络上搜索“how to pack float into RGBA”,能够得到很多有用的回答。
基于边缘拟合
阴影
图的实时硬
阴影
生成 (2013年)
阴影
贴图(
Shadow
Map
ping)技术已被广泛应用于3D游戏及其它实时图形应用中。本文针对
阴影
贴图在渲染场景时
阴影
边缘出现严重锯齿这一现象,提出一种实时硬
阴影
的反走样技术,边缘拟合
阴影
图EFSMs(EdgeFitting
Shadow
Map
s)算法。
阴影
贴图所引起的透视走样及投影走样,均会导致多个像素对应
阴影
图(
Shadow
Map
)中的一个纹素,即出现多对一
映射
;使用EFSMs算法,在进行
阴影
映射
时,得到较为精确的对应纹素,从而避免多对一
阴影
映射
时产生的边缘锯齿.实验结果显示,此方法极大消除了边缘的锯齿
Linux系统编程第3期:文件IO缓存与内存
映射
本课程是《嵌入式工程师自我修养》自学教程第 3 步:Linux系统编程第03期。主要分析Linux文件I/O缓存机制:包括页缓存、用户空间的I/O缓存、内存
映射
机制等。
论文研究-基于GPU统一计算架构平台的实时
阴影
算法研究 .pdf
基于GPU统一计算架构平台的实时
阴影
算法研究,马晨,,本文改进了
shadow
map
阴影
映射
算法,使其可以嵌入GPU通用并行计算架构处理。研究了一种用连续函数来逼近离散
阴影
测试函数的方法,可��
3.1.1.
shadow
_
map
ping_depth.rar
场景渲染成深深度
映射
由两个步骤组成:首先,我们渲染深度贴图,然后我们像往常一样渲染场景,使用 生成的深度贴图来计算片元是否在
阴影
之中。听起来有点复杂,但随着我们一步一步地讲解 这个技术,就能理解了。 深度贴图(depth
map
) 第一步我们需要生成一张深度贴图。深度贴图是从光的透视图里渲染的深度纹理,用它计算
阴影
。因为我们需要将场景的渲染结果储存到一个纹理中,我们将再次需要帧缓冲。 首先,我们要为渲染的深度贴图创建一个帧缓冲对象:
阴影
-
阴影
映射
度贴图的源码
游戏开发
8,304
社区成员
23,682
社区内容
发帖
与我相关
我的任务
游戏开发
游戏开发相关内容讨论专区
复制链接
扫一扫
分享
社区描述
游戏开发相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章