如何用glsl渲染模板?

iwantnon 2012-09-22 12:24:40
我已经将阴影渲染到模板了(通过shadow volume算法),模板中为>0的元素为阴影。
下一步要做的是按着这个模板把阴影渲染到屏幕上去。
当然直接开启模板测试,并设置模板测试的通过条件为“模板值>0”即可实现。
但是我还想实现一个特殊效果,就是让各阴影点的透明度随着其z深度值不同也发生变化--即z值大的阴影像素透明度大些,z值小的阴影像素透明度小些。
显然,这个只能通过shader实现了。我刚开始接触shader,能力还不够。想请教一下各位,我这个效果如何实现?

能给出代码当然最好,或者说说思路也很有帮助。

高分求指点!
...全文
241 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
iwantnon2012 2012-09-24
  • 打赏
  • 举报
回复
怎么还是显示不正常,再试一次:
iwantnon 2012-09-24
  • 打赏
  • 举报
回复
页面太窄,右面的主要部分没显示出来:

iwantnon 2012-09-24
  • 打赏
  • 举报
回复
多谢楼上回复。
不过我用的是opengl,我在原帖子上忘说了。
我现在有些进展了,基本上是把color,depth,stencil都渲染到纹理并显示出来了。如图。
不过存在一个小问题就是在目前的opengl里depth和stencil似乎只能共用一个depth_stencil_texture(或depth_stencil_buffer),渲染到纹理之后我能只能在shader中提取出depth分量,而stencil分量却无法直接提取到(虽然我知道它是存在在里面了,因为模板阴影的渲染效果是对的)。后来没办法,我又另建了一个color texture,把stencil渲染到这个color texture上。这样功能实现了,只是有点儿不太直接。如果哪位高手知道如何通过glsl shader在depth_stencil_texture中直接提取到stencil分量,请不吝惜赐教,先谢了。
LUCI-Z 2012-09-23
  • 打赏
  • 举报
回复
我不是特别了解你这样做的原因。但是在dx9中你无法访问z缓存。你这个只能用mrt,就是多渲染目标,把z渲出来。然后在你的shader中把他作为一个输入,在进行你所需要的处理。
第1章 绪论............................................................................................................13 1.1 Programmable Graphics Processing Unit发展历程....................................13 1.2 GPU VS CPU..................................................................................................15 1.3 国内外研究现状...........................................................................................18 1.4 本书主要内容和结构...................................................................................18 第2章GPU图形绘制管线.......................................................................................21 2.1 几何阶段.......................................................................................................22 2.1.1 从object space到world space............................................................23 2.1.2 从world space到eye space................................................................24 2.1.3 从eye space到project and clip space ................................................25 2.2 Primitive Assembly && Triangle setup .........................................................26 2.3 光栅化阶段...................................................................................................27 2.3.1 Rasterization .........................................................................................27 2.3.2 Pixel Operation .....................................................................................28 2.4 图形硬件.......................................................................................................30 2.4.1 GPU内存架构.....................................................................................30 2.4.2 Z Buffer与Z值...................................................................................31 2.4.3 Stencil Buffer ........................................................................................33 2.4.4 Frame Buffer .........................................................................................34 2.5 本章小节........................................................................................................35 第3章Shader Language............................................................................................36 3.1 Shader Language原理..................................................................................37 3.2 Vertex Shader Program.................................................................................39 3.3 Fragment Shader Program ............................................................................40 3.4 CG VS GLSL VS HLSL.................................................................................41 3.5 本章小结.......................................................................................................43 第4章 Cg语言概述..................................................................................................44 4.1 开始Cg之旅................................................................................................44 4.2 CG特性........................................................................................................45 9 4.3 CG 编译.......................................................................................................45 4.3.1 CG编译原理........................................................................................45 4.3.1 CGC编译命令.....................................................................................47 4.4 CG Profiles....................................................................................................50 第5章 CG数据类型................................................................................................53 5.1 基本数据类型...............................................................................................53 5.2 数组类型.......................................................................................................55 5.3 结构类型.......................................................................................................56 5.4 接口(Interfaces)类型...............................................................................58 5.5 类型转换.......................................................................................................58 第6章 CG表达式与控制语句................................................................................60 6.1 关系操作符(Comparison Operators)......................................................60 6.2 逻辑操作符(Logical Operators)..............................................................61 6.3 数学操作符(Math Operators).................................................................62 6.4 移位操作符...................................................................................................62 6.5 Swizzle 操作符............................................................................................63 6.6条件操作符(Conditional Operators)........................................................64 6.7 操作符优先顺序...........................................................................................65 6.8控制流语句(Control Flow Statement).....................................................66 第 7 章 输入\输出与语义绑定..................................................................................67 7.1 Cg关键字.....................................................................................................67 7.2 uniform..........................................................................................................68 7.3 const..............................................................................................................69 7.4 输入\输出修辞符(in\out\inout)..............................................................69 7.5语义词(Semantic)与语义绑定(Binding Semantics)..........................70 7.5.1输入语义与输入语义的区别...............................................................71 7.5.2顶点着色程序的输入语义...................................................................72 7.5.3顶点着色程序的输出语义...................................................................73 7.5.4片段着色程序的输出语义...................................................................75 10 7.5.5语义绑定方法.......................................................................................75 第 8 章 函数与程序设计............................................................................................79 8.1 函数...............................................................................................................79 8.1.1数组形参...............................................................................................80 8.2函数重载........................................................................................................81 8.3 入口函数.......................................................................................................82 8.4 CG标准函数库............................................................................................83 8.4.1数学函数(Mathematical Functions)................................................84 8.4.2几何函数(Geometric Functions).....................................................87 8.4.3纹理映射函数(Texture Map Functions).........................................88 8.4.4偏导函数(Derivative Functions).....................................................91 8.4.5调试函数(Debugging Function)......................................................94 8.5 在未来将被解决的问题................................................................................94 开篇语:...............................................................................................................96 第 9 章 经典光照模型(illumination model).........................................................97 9.1 光源...............................................................................................................97 9.2 漫反射与Lambert模型...............................................................................98 9.2.1 漫反射渲染..........................................................................................99 9.3镜面反射与Phong模型.............................................................................102 9.3.1 phong模型渲染..................................................................................103 9.4 Blinn-Phong光照模型...............................................................................107 9.5全局光照模型与Rendering Equation ........................................................109 9.6 本章小结.....................................................................................................110 第 10 章 高级光照模型............................................................................................ 111 10.1 Cook-Torrance光照模型.........................................................................112 10.1.1 Cook-Torrance光照模型渲染实现.................................................116 10.2 BRDF光照模型.......................................................................................118 10.2.1 什么是BRDF光照模型...............................................................118 10.2.2 什么是各向异性............................................................................119 11 10.3 Bank BRDF经验模型................................................................................120 10.4 本章小结...................................................................................................123 第 11 章 透明光照模型与环境贴图........................................................................124 11.1 Snell定律与Fresnel定律........................................................................125 11.1.1 折射率与Snell定律......................................................................125 11.1.2 色散................................................................................................126 11.1.3 Fresnel定律...................................................................................127 11.2环境贴图....................................................................................................128 11.3 简单透明光照模型...................................................................................132 11.4 复杂透明光照模型与次表面散射...........................................................136 第 12 章 投影纹理映射(Projective Texture Mapping).......................................137 12.1 投影纹理映射的优点...............................................................................137 12.2 齐次纹理坐标(Homogeneous Texture Coordinates)..........................139 12.3原理与实现流程........................................................................................139 12.4 本章小结...................................................................................................143 第13章 Shadow Map ..............................................................................................144 13.1 什么是depth map.....................................................................................144 13.2 Shadow map与shadow texture的区别..................................................145 13.3 Shadow map原理与实现流程.................................................................146 第 14 章 体绘制(Volume Rendering)概述.........................................................152 14.1 体绘制与科学可视化...............................................................................153 14.2 体绘制应用领域.......................................................................................153 14.3 体绘制与光照模型...................................................................................154 14.4 体数据(Volume Data).........................................................................155 14.4.2 体素(Voxel)................................................................................156 14.4.1 体纹理(Volume Texture)............................................................157 14.5 体绘制算法...............................................................................................159 第15章 光线投射算法(Ray Casting)................................................................160 15.1 光线投射算法原理...................................................................................160 12 15.1.1吸收模型...........................................................................................161 15.2 光线投射算法若干细节之处...................................................................161 15.2.1 光线如何穿越体纹理......................................................................161 15.2.2 透明度、合成..................................................................................163 15.2.3 沿射线进行采样..............................................................................164 15.2.2 如何判断光线投射出体纹理..........................................................166 15.3 算法流程...................................................................................................168 15.4 光线投射算法实现...................................................................................169 15.5 本章小结...................................................................................................172 附录A 齐次坐标................................................................................................173 附录B:体绘制的医学历程.............................................................................175 附录C:模板阴影(Stencil Shadow)............................................................178 参考文献....................................................................................................................182

8,303

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧