GLSL实现Simple Displace Mapping 水仿真流体绘制 【转】
http://blog.csdn.net/a3070173/archive/2008/11/20/3342062.aspx
- Dislace Mapping其实就是在顶点着色器中
- 对顶点进行置换偏移,经常用于水仿真流体绘制.
- 顶点着色器:
- uniform float g_fScale;
- uniform sampler2D g_DisplaceTexture;
- void main()
- {
- float fDisplace = texture2DLod(g_DisplaceTexture, gl_MultiTexCoord0.st, 0.0).r;
- vec4 vec4NewVertex = vec4(gl_Vertex.x, gl_Vertex.y + g_fScale*fDisplace, gl_Vertex.zw);
- gl_TexCoord[0] = gl_MultiTexCoord0;
- gl_Position = gl_ModelViewProjectionMatrix*vec4NewVertex;
- }
- 片元着色器:
- uniform sampler2D g_DecalTexture;
- void main()
- {
- gl_FragColor = texture2D(g_DecalTexture, gl_TexCoord[0].st);
- }
- Demo效果截图:
- exe文件:http://www.fileupyours.com/view/219112/GLSL/Simple%20Displace%20Mapping.rar
- VC9运行库:http://www.fileupyours.com/view/219112/GLSL/VC9%26%2336816%3B%26%2334892%3B%26%2326102%3B%26%2324211%3B.rar
GLSL实现Simple Displace Mapping 水仿真流体绘制 【转】的更多相关文章
- osg通过glsl实现一个平面的水效果(法线贴图) 【转】
		转自 http://blog.sina.com.cn/s/blog_78ea87380101ehk3.html 此文实现一个简单的的水面效果,主要是法线贴图, 效果图如下: 此文分为三部分:ver ... 
- GLSL使用FBO实现MRT(Multiple Render Targets)绘制到多张纹理 【转】
		项目的程序里设计需要将某一帧渲染出来的画面拆成三通道单色图像存到三张纹理里面.要绘制到纹理里,自然就想到FBO了.但是一次要输出多张纹理,这个还没接触过.一阵网上搜索过后,终于了解到了MRT(多重渲染 ... 
- Parallax Occlusion Mapping in GLSL [转]
		http://www.sunandblackcat.com/tipFullView.php?topicid=28 This lesson shows how to implement differ ... 
- glsl水包含倒影的实现(rtt) [转]
		转自 http://blog.sina.com.cn/s/blog_78ea87380101eixi.html 此文实现一个简单地水面倒影效果,通过rtt相机 获取倒影纹理, 水的基本实现方法(参考前 ... 
- glsl水包含倒影的实现(rtt) 【转】
		http://blog.sina.com.cn/s/blog_78ea87380101eixi.html 此文实现一个简单地水面倒影效果,通过rtt相机 获取倒影纹理, 水的基本实现方法(参考前一博文 ... 
- 基于 Agent 的模型入门:Python 实现隔离仿真
		2005 年诺贝尔经济学奖得主托马斯·谢林(Thomas Schelling)在上世纪 70 年代就纽约的人种居住分布得出了著名的 Schelling segregation model,这是一个 A ... 
- 三角函数之美-水波纹载入LoadingView
		一.前言 学习是要总结的.近期几天学习了画图相关的,可是使用的机会较少,如今又快要遗忘了,这次看了水波纹的绘制.认为十分有意思,还是 把实现的方法记录下来.技术无他,为手熟尔.还是要多练习,空淡误国, ... 
- mmap DMA【转】
		转自:http://blog.csdn.net/lihaoweiv/article/details/6275241 第 13 章 mmap 和 DMA 本章将深入探讨 Linux 内存管理部分,并强 ... 
- 内存映射MMAP和DMA【转】
		转自:http://blog.csdn.net/zhoudengqing/article/details/41654293 版权声明:本文为博主原创文章,未经博主允许不得转载. 这一章介绍Linux内 ... 
随机推荐
- Selenium2Library系列 keywords 之 _SelectElementKeywords 之 select_from_list_by_label(self, locator, *labels)
			def select_from_list_by_label(self, locator, *labels): """Selects `*labels` from list ... 
- 让pre标签自动换行示例代码
			pre 元素可定义预格式化的文本.被包围在 pre 元素中的文本通常会保留空格和换行符.而文本也会呈现为等宽字体. <pre> 标签的一个常见应用就是用来表示计算机的源代码.对于技术博客经 ... 
- 阿里巴巴2013年实习生笔试题B
			阿里巴巴集团2013实习生招聘技术类笔试题(B) 一.单向选择题 1.在常用的网络协议中,___B__是面向连接的.有重传功能的协议. A. IP B. TCP C. UDP D. DXP 2.500 ... 
- 记录一下ORACLE 10gR2的软件下载地址,备用。
			转载自:http://www.eygle.com/archives/2008/06/10gr2_download_link.html 记录一下ORACLE 10gR2的软件下载地址,备用. 下载OTN ... 
- python 抽象类、抽象方法的实现
			由于python 没有抽象类.接口的概念,所以要实现这种功能得abc.py 这个类库,具体方式如下 from abc import ABCMeta, abstractmethod #抽象类 class ... 
- MySQL 插入与自增主键值相等的字段 与 高并发下保证数据准确的实验
			场景描述: 表t2 中 有 自增主键 id 和 字段v 当插入记录的时候 要求 v与id 的值相等(按理来说这样的字段是需要拆表的,但是业务场景是 只有某些行相等 ) 在网上搜的一种办法是 先获取 ... 
- geeksforgeeks@ Minimum sum partition (Dynamic Programming)
			http://www.practice.geeksforgeeks.org/problem-page.php?pid=166 Minimum sum partition Given an array, ... 
- jQuery和js如何判断checkbox是否选中
			jquery: <div id="divId" class="divTable"><div class="tableBody&quo ... 
- How to run a terminal inside of vim?
			[How to run a terminal inside of vim?] :sh turn vim into shell mode d+trl back to vim 参考:http://stac ... 
- HDU 4539郑厂长系列故事――排兵布阵(状压DP)
			HDU 4539 郑厂长系列故事――排兵布阵 基础的状压DP,首先记录先每一行可取的所哟状态(一行里互不冲突的大概160个状态), 直接套了一个4重循环居然没超时我就呵呵了 //#pragma co ... 
