使用GLSL实现的海洋效果 【转】

http://bbs.osgchina.org/viewthread.php?tid=342&extra=page%3D3

虽说自己原创的部分并不算多,不过总算是调试通过了,中间有多次严重的死机……估计该换新显卡了~~不过最后的效果还蛮不错?

实现海洋平面的GLSL源代码来自:http://emiug.alanabram.co.uk,感觉他的代码比Bonzai公司的要简单些(后者需要水面纹理的反射/散射/法线/深度/Dudv贴图,3DVRI实现的水面效果好像也与之类似)。不过我个人还是GLSL的初学者,没资格多评论~~

OSG程序中,注意所需的uniform变量包括:LightPos,time,normalMap和cubeMap。后两者属于纹理采样器,在OSG中需要使用
osg::Uniform( "normalMap", 0 )和osg::Uniform( "cubeMap", 1 ) 来指定纹理采样器对应的纹理单元,同时使用setTextureAttributeAndModes在对应的纹理单元设置正确的贴图图样。

至于海洋效果的实现,应该说属于数学范畴吧~~大家不妨从附件的代码中了解一二。
使用
GLSL可以实现许多让人瞠目结舌的三维特效,可惜现在国内这方面的研究资料这好像同样很少,相关书籍也只有翻译的《OpenGL Shading
Language》一本,希望能有更多的朋友分享自己的经验和成果。就像这位与我们并不相识的Alan ABram一样~~

使用GLSL实现的海洋效果 【转】

时间: 2024-10-09 01:07:28

使用GLSL实现的海洋效果 【转】的相关文章

一步一步创建三维数字地球

目录: 1.数字地球简介 2.需要的知识和数据 3.三维球面坐标系 4.创建最简单的地球 5.创建地球浏览控制器 6.基于QuadTree的地形影像创建简介 7.地形影像的创建和销毁 8.优化地形影像调度 9.基于球面和平面的创建调度方式 10.优化地形影像的效果 11.叠加栅格矢量 12.增加真实度,添加大气和天气效果 13.增加模型的调度和创建 14.模型的数据组织 15.网络下载线程池 16.虚拟文件系统 17.真实矢量渲染 20.水面效果 18.海量的森林和树木实现 19.路面模型的创建

GLSL实现Glow效果 [转]

http://blog.csdn.net/a3070173/archive/2008/11/04/3220940.aspx Glow即辉光效果现在已成为3D图形中一个引人注目的特效.本文主要介绍如何使用GLSL实现一个典型的GLow效果.  实现步骤:1.渲染整个场景到一个祯缓冲区中     2.将场景中需要进行GLow处理的物体绘制第二个FBO纹理A中     3.在FBO纹理A和B之间进行横和纵"高斯"过滤     4.将进行过GLow处理后的FBO纹理A与祯缓冲区中的场景图像以g

TouchDesigner中通过GLSL 把视频变成六角形、三角形和圆形的像素化效果

做的几个类似的滤镜实验,主要是想把普通的视频做成能有一些比较风格化的效果,参考了shadertoys里面的一些案例,然后在touchdesigner中分别实现了六角形.三角形和圆形的马赛克效果,如果再做一些颜色调整其实能达到比较有意思的互动效果.下面是效果图: original hexagon circle triangle 当然所有效果也都是实时的. 下面是代码: HEXAGON,这个效果在搜寻最近六边形上有一个大神已经把算法做好了,直接照着他的用就好了: http://www.gamedev

第4章:缓冲区、着色器、GLSL

原文链接: http://www.rastertek.com/gl40tut04.html Tutorial 4: Buffers, Shaders, and GLSL This tutorial will be the introduction to writing vertex and pixel shaders in OpenGL 4.0. It will also be the introduction to using vertex and index buffers in OpenG

【OpenGL】Shader实例分析(七)- 雪花飘落效果

转发请保持地址:http://blog.csdn.net/stalendp/article/details/40624603 研究了一个雪花飘落效果.感觉挺不错的.分享给大家,效果例如以下: 代码例如以下: Shader "shadertoy/Flakes" { // https://www.shadertoy.com/view/4d2Xzc Properties{ iMouse ("Mouse Pos", Vector) = (100,100,0,0) iChan

WebGL 着色器语言(GLSL ES)

1.类型转换内置函数 转换/函数/描述 转换为整形数/int(float)/将浮点数的小数部分删去,转换为整形数(比如,将3.14转换为3) 转换为整形数/intl(bool)/true被转换为1,false被转换为0 转换为浮点数/float(int)/将整形数转换为浮点数(比如,将8转换为8.0) 转换为浮点数/float(bool)/true被转换为1.0,false被转换为0.0 转换为布尔值/bool(int)/0被转换为false,其他非0倍转换为true 转换为布尔值/0.0被转换

提高短信营销效果的四大技巧分析

据工信部的统计数据显示,截止到5月底中国的手机用户数量已达到12.56亿人,相当于中国90.8%的人都在使用手机. 据统计报道表明,在全部使用手机的人中,使用3G网络的用户有4.64亿人(占比36.94%),全部使用手机上网的用户数量为8.57亿人.占总数量的68.24%.另外截止到五月底.我国共同拥有约2.6亿固定电话注冊用户. 手机的用户数据已经远远超过上网人数,而且使用智能手机.手机上网的用户群体也日益添加,达到8.5亿.这么庞大的一个群体.势必也就成了商家营销的必争之地.短信及电话营销已

[GLSL]着色器周记01!

我决定开个新坑了.以后每周五更新.这是GLSL的学习周记!GLSL就是OPENGL SHADER LANGUAGE的简称,就是着色器语言.着色器是一种交给显卡运行的小程序,这种小程序可以用GLSL来写,写好后交给OPENGL编译,就可以在显卡上运行了. 那么问题来了!为什么要给显卡运行呢?显卡是一种特殊的处理器,有核心,有寄存器,还有内存,不过对比CPU,最大的特点就是显卡的核心更多.多多少呢?一般CPU有4-8个核心,而显卡则是100个左右的核心!不过由于造价还有空间的限制,显卡的某些功能会被

中科燕园GIS外包案例之三-----海洋预报信息掌上发布系统

该系统采用B/S架构与M/S构架相结合,客户端包括web客户端和android移动客户端.数据由access和文本文件存储管理.web客户端借助ArcGIS API for JavaScript和开源的Dojo 1.8.0 在Visual studio 2010平台上开发,android客户端借助ArcGIS API for android,ArcGIS Runtime SDK for Android在Eclipse平台上开发.         [Web客户端] 1.常用地图操作:放大.缩小.平