青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

麒麟子

~~

導(dǎo)航

<2011年1月>
2627282930311
2345678
9101112131415
16171819202122
23242526272829
303112345

統(tǒng)計

常用鏈接

留言簿(12)

隨筆分類

隨筆檔案

Friends

WebSites

積分與排名

最新隨筆

最新評論

閱讀排行榜

評論排行榜

Reflect & Refract (以水渲染為例)

 

我不是Shader帝,雖然知道Shader怎么寫,但一直沒仔細(xì)研究過。最近蛋疼至極,研究了下RenderMonkey,于是抽著幾個看著比較有趣的效果做了一下。

 

先前的模型貼花http://www.shnenglu.com/Leaf/archive/2011/01/07/138093.html

和CUBE MAP http://www.shnenglu.com/Leaf/archive/2011/01/07/138106.html

就是此次蛋疼期的產(chǎn)物之一。

 

還是先圍觀,上圖再說

image

 

image

本次要蛋疼的是折射和反射。

反射和折射通常用于增加場景真實感。由于其代價昂貴(通常是要將場景多渲染兩次為代價)。因此在實際的游戲開發(fā)中,都省著用。而此次演示的水的反射和折射并未進(jìn)行場景渲染,只做了以下幾點工作。

 

1、渲染天空球。

2、渲染一個水面,并用CUBEMAP對其進(jìn)行映射,映射時紋理坐標(biāo)采用投影方式,并附帶擾動。(擾動用的是一個立方體紋理)

 

附加說明:此次是對RenderMonkey 1.82里的Reflections Refractions例子里的Ocean進(jìn)行改造。 原本Ocean里只做了反射,我強加上了折射。

關(guān)于折射,有一個哥們的資料解釋得挺好的。鏈接如下

http://www.zwqxin.com/archives/shaderglsl/review-reflect-and-refract.html

 

 

下面是Vertex Shader代碼。以及其解釋

float4x4 view_proj_matrix;//: register(c0);
float4 scale;//: register(c5);
float4 view_position;
struct VS_OUTPUT {
   float4 Pos:    POSITION;
   float3 pos:    TEXCOORD0;
   float3 normal: TEXCOORD1;
   float3 vVec:   TEXCOORD2;
};

VS_OUTPUT main(float4 Pos: POSITION, float3 normal: NORMAL){
   VS_OUTPUT Out;

   // Get some size on the water
   Pos.xy *= 1000; //由于RenderMonkey里的OceanSurface.3ds比較小,這里進(jìn)行了強制縮放,若是其它模型,則可以屏蔽掉這兩條語句
   Pos.z = Pos.z -30;

   Out.Pos = mul(Pos,view_proj_matrix);
   Out.pos = Pos.xyz * scale;
   Out.vVec = Pos - view_position;//視線方向 注意:是世界空間。
   Out.normal = normal;

   return Out;
}

 

 

float waveSpeed: register(c2); //水波速度  0.3
float noiseSpeed: register(c3);//躁聲速度 0.26
float fadeBias: register(c4);//退化矯正 0.3
float fadeExp: register(c5); //退化幕 6.08
float time_0_X: register(c0);//時間
float4 waterColor: register(c1);//水面顏色
float4 scale: register(c6);//縮放, 其w分量存放著折射系數(shù)
sampler Noise: register(s0);//3D躁聲圖
sampler skyBox: register(s1);//CUBE MAP  天空盒
float4 main(float3 pos: TEXCOORD0, float3 normal: TEXCOORD1, float3 vVec: TEXCOORD2) : COLOR {

//這兩條語句是對其進(jìn)行偏移,使訪問紋理坐標(biāo)的時候,產(chǎn)生流動和擾動效果
   pos.x += waveSpeed  * time_0_X;
   pos.z += noiseSpeed * time_0_X;

   float4 noisy = tex3D(Noise, pos); //對躁聲紋理進(jìn)行采樣

   // Signed noise
   float3 bump = 2 * noisy - 1; //由于采樣同來的躁聲紋理每個分量的值是 [0,1] 對此將其規(guī)范化到[-1.0,1.0]
   bump.xy *= 0.15;//縮放一定值。
   // Make sure the normal always points upwards

///法向量矯正,使其永遠(yuǎn)向上。注:在這里,XY與Ocean平面平行,Z為向上
   bump.z = 0.8 * abs(bump.z) + 0.2;
   // Offset the surface normal with the bump

//偏移法向量
   bump = normalize(normal + bump);

   // Find the reflection vector

//計算反射和折射
   float3 reflVec = reflect(vVec, bump);
   float3 refrac = refract(normalize(vVec),normalize(bump),scale.w);

//根據(jù)反射和折射方向訪問CUBE MAP

   float4 refl = texCUBE(skyBox, reflVec.yzx);
   float4 wa = texCUBE(skyBox, refrac.yzx);
   wa = wa*0.5+waterColor*0.5;

//下面是fresnel效果計算,就是用于計算折射和反射圖之間的插值因子的。詳情請仔細(xì)GOOGLE

  //這就是上面那個老兄的Ratio = f + (1 - f) (1 - InVec • norm)fresnelPower 公式

//圖1中,n1 = 1.0    n2 = 1.3
   float f = 0.0170132325;
   float lrp =f+(1-f)*(1 - dot(-normalize(vVec), bump));
   // Interpolate between the water color and reflection
   return lerp(wa, refl, saturate(fadeBias + pow(lrp, fadeExp)));

image圖1

 

 

本文并未解釋任何事情,僅是將上面那個鏈接指向的文章內(nèi)容翻版為水面實現(xiàn)。此實現(xiàn)僅作為探索目的,無任何實用價值(除非你只想演示水)。

 

若要用此方案作實時的水面渲染,則需要將場景渲染到一個CUBEMAP上(就算你降到CUBEMAP每秒更新2次,代價也是比較大的,并且不能保證實時感)。

 

而其中的擾動紋理,以及所給的相關(guān)因子均需要手動調(diào)整到一個合適的值。

posted on 2011-01-08 22:35 麒麟子 閱讀(2739) 評論(1)  編輯 收藏 引用 所屬分類: GPU and Graphic

評論

# re: Reflect &amp; Refract (以水渲染為例) 2011-01-10 16:20 Rambler

reflVec.yzx 關(guān)于這個掩碼,我的解釋是。 RM里的模型太不規(guī)范了。  回復(fù)  更多評論   

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            日韩网站在线观看| 一区二区三区导航| 久久久久久久一区二区三区| 亚洲一区影院| 国产日韩一区二区| 久久日韩粉嫩一区二区三区| 久久av在线| 亚洲国产小视频在线观看| 欧美成人免费观看| 欧美人交a欧美精品| 亚洲午夜羞羞片| 亚洲欧美日韩精品久久| 国外精品视频| 亚洲精品久久嫩草网站秘色 | 亚洲综合色在线| 国产视频久久久久| 欧美国产精品v| 国产精品盗摄久久久| 久久爱另类一区二区小说| 久久激情五月婷婷| 日韩午夜激情av| 午夜国产精品视频| 亚洲欧洲精品一区二区三区 | 欧美va亚洲va日韩∨a综合色| 久久久综合香蕉尹人综合网| 亚洲精品综合久久中文字幕| 一个人看的www久久| 伊人色综合久久天天| 亚洲日本在线观看| 国内精品写真在线观看| 亚洲欧洲日本一区二区三区| 国产精品美女久久久久av超清 | 久久精品国产在热久久 | 亚洲欧美文学| 亚洲精品视频一区二区三区| 亚洲欧美综合v| 99在线热播精品免费99热| 欧美在线黄色| 亚洲专区欧美专区| 蜜桃伊人久久| 久久久噜噜噜久久| 国产精品久久久久久久午夜| 亚洲丰满少妇videoshd| 国产精品自在在线| 一区二区三区精品| 夜夜精品视频| 欧美电影电视剧在线观看| 久久免费视频在线观看| 国产精品久久久99| 亚洲伦理自拍| 亚洲精品一区二区三区四区高清 | 欧美激情第4页| 韩国av一区二区三区在线观看| 99re热精品| 99re热这里只有精品免费视频| 久久久91精品国产一区二区三区 | 亚洲欧美日韩一区在线| 欧美日本高清| 亚洲国产欧美在线人成| 在线观看日韩精品| 久久精品在线免费观看| 欧美在线视频全部完| 国产精品啊v在线| 夜夜嗨av一区二区三区四区| 日韩亚洲欧美精品| 欧美另类高清视频在线| 亚洲激情午夜| 一区二区久久| 欧美日韩综合网| aa国产精品| 午夜国产精品视频| 国产精品欧美久久| 亚洲综合成人在线| 久久国产一二区| 在线观看日韩av先锋影音电影院| 欧美在线视频观看| 老司机免费视频久久| 亚洲激情视频| 欧美日韩一区视频| 亚洲色图自拍| 久久久精品日韩欧美| 在线播放国产一区中文字幕剧情欧美| 久久成人免费日本黄色| 女人香蕉久久**毛片精品| 亚洲黑丝在线| 欧美日韩精品二区| 亚洲伊人色欲综合网| 久久精品人人爽| 亚洲欧洲另类国产综合| 欧美日韩国产综合网| 国产精品99久久久久久久久久久久| 亚洲欧美综合国产精品一区| 国产综合av| 欧美日本一区二区视频在线观看| 99re66热这里只有精品3直播| 欧美永久精品| 亚洲日本一区二区| 国产精品久久久久久久久久免费 | 国产精品高精视频免费| 午夜免费电影一区在线观看| 久久人人爽人人爽| 一区二区三区**美女毛片| 国产免费亚洲高清| 免费不卡在线视频| 亚洲一区精品在线| 欧美激情精品久久久久久| 香蕉久久国产| 日韩视频在线免费| 韩国av一区二区三区在线观看| 欧美国产视频在线| 欧美在线亚洲综合一区| 亚洲另类视频| 欧美大片在线看免费观看| 亚洲欧美清纯在线制服| 亚洲人被黑人高潮完整版| 国产精品一区二区在线观看| 欧美韩日一区二区三区| 久久国产精品久久国产精品| 一本久久综合亚洲鲁鲁| 欧美黄色免费| 老鸭窝亚洲一区二区三区| 亚洲在线视频免费观看| 亚洲激情视频在线播放| 黑人一区二区| 国产午夜亚洲精品理论片色戒| 欧美极品欧美精品欧美视频| 久久久不卡网国产精品一区| 亚洲综合不卡| 中文在线资源观看视频网站免费不卡| 你懂的网址国产 欧美| 欧美制服第一页| 午夜精品久久久久久久| 亚洲私人黄色宅男| 日韩一区二区电影网| 亚洲高清成人| 亚洲国产乱码最新视频| 伊人天天综合| 亚洲成色精品| 亚洲大胆美女视频| 激情久久久久久久久久久久久久久久 | 亚洲黄色免费网站| 欧美国产成人在线| 欧美大片一区二区三区| 农村妇女精品| 欧美福利视频一区| 欧美国产激情二区三区| 欧美激情精品久久久久久蜜臀 | 亚洲人成免费| 亚洲精品国产精品乱码不99按摩| 激情综合色综合久久| 伊大人香蕉综合8在线视| 狠狠色丁香婷婷综合影院| 韩国av一区二区三区| 狠狠色伊人亚洲综合成人 | 久久久久天天天天| 久久婷婷成人综合色| 美日韩精品免费观看视频| 欧美成人有码| 欧美日韩一区三区| 国产精品永久免费视频| 好吊一区二区三区| 在线观看亚洲视频| 亚洲三级视频| 亚洲综合国产| 久久人人97超碰国产公开结果| 久久午夜电影网| 亚洲激情欧美激情| 亚洲视频电影在线| 欧美在线亚洲| 欧美成人一区二区三区在线观看| 欧美日本免费一区二区三区| 国产精品久久久一区二区| 国模私拍视频一区| 亚洲免费精品| 欧美在线一区二区| 欧美激情精品久久久久久黑人| 亚洲精品中文字幕女同| 亚洲你懂的在线视频| 免费在线亚洲| 国产精品久久久久久影视| 激情成人av| 亚洲婷婷综合久久一本伊一区| 欧美在线免费播放| 亚洲东热激情| 性伦欧美刺激片在线观看| 欧美顶级少妇做爰| 国产精品专区h在线观看| 亚洲二区在线视频| 性欧美大战久久久久久久免费观看| 美女网站久久| 亚洲一区二区三区在线观看视频| 久热re这里精品视频在线6| 国产精品欧美久久久久无广告| 亚洲国产精品欧美一二99| 欧美一区二区三区四区在线| 亚洲三级观看| 久久综合久久久久88| 国产亚洲毛片在线| 亚洲砖区区免费| 亚洲人成人99网站|