亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? vertexnoise.cg

?? 3D Game Engine Design Source Code非常棒
?? CG
字號:
/*
  From the NVIDIA Cg Toolkit and released on
    http://www.cgshaders.org

  CG noise implementation for vertex program profile
  sgreen 5/02/02

  Compile with: cgc.exe -profile vp20 vnoise.cg 

  This is based on Perlin's original code:
  http://mrl.nyu.edu/~perlin/doc/oscar.html

  It combines the permutation and gradient tables into one array of
  float4's to conserve constant memory.
  The table is duplicated twice to avoid modulo operations.

  Notes:
  Should use separate tables for 1, 2 and 3D versions
*/

#define B  32      // table size
#define B2 66      // B*2 + 2
#define BR 0.03125 // 1 / B

// this is the smoothstep function f(t) = 3t^2 - 2t^3, without the normalization
float3 s_curve(float3 t)
{
  return t*t*( float3(3.0f, 3.0f, 3.0f) - float3(2.0f, 2.0f, 2.0f)*t);
}

float2 s_curve(float2 t)
{
  return t*t*( float2(3.0f, 3.0f) - float2(2.0f, 2.0f)*t);
}

float s_curve(float t)
{
  return t*t*(3.0f-2.0f*t);
}

// 3D version
float noise(float3 v, const uniform float4 pg[B2])
{
  v = v + float3(10000.0f, 10000.0f, 10000.0f);   // hack to avoid negative numbers

  float3 i = frac(v * BR) * B;   // index between 0 and B-1
  float3 f = frac(v);            // fractional position

  // lookup in permutation table
  float2 p;
  p[0] = pg[ i[0]     ].w;
  p[1] = pg[ i[0] + 1 ].w;
  p = p + i[1];

  float4 b;
  b[0] = pg[ p[0] ].w;
  b[1] = pg[ p[1] ].w;
  b[2] = pg[ p[0] + 1 ].w;
  b[3] = pg[ p[1] + 1 ].w;
  b = b + i[2];

  // compute dot products between gradients and vectors
  float4 r;
  r[0] = dot( pg[ b[0] ].xyz, f );
  r[1] = dot( pg[ b[1] ].xyz, f - float3(1.0f, 0.0f, 0.0f) );
  r[2] = dot( pg[ b[2] ].xyz, f - float3(0.0f, 1.0f, 0.0f) );
  r[3] = dot( pg[ b[3] ].xyz, f - float3(1.0f, 1.0f, 0.0f) );

  float4 r1;
  r1[0] = dot( pg[ b[0] + 1 ].xyz, f - float3(0.0f, 0.0f, 1.0f) );
  r1[1] = dot( pg[ b[1] + 1 ].xyz, f - float3(1.0f, 0.0f, 1.0f) );
  r1[2] = dot( pg[ b[2] + 1 ].xyz, f - float3(0.0f, 1.0f, 1.0f) );
  r1[3] = dot( pg[ b[3] + 1 ].xyz, f - float3(1.0f, 1.0f, 1.0f) );

  // interpolate
  f = s_curve(f);
  r = lerp( r, r1, f[2] );
  r = lerp( r.xyyy, r.zwww, f[1] );
  return lerp( r.x, r.y, f[0] );
}

// 2D version
float noise(float2 v, const uniform float4 pg[B2])
{
  v = v + float2(10000.0f, 10000.0f);

  float2 i = frac(v * BR) * B;   // index between 0 and B-1
  float2 f = frac(v);            // fractional position

  // lookup in permutation table
  float2 p;
  p[0] = pg[ i[0]   ].w;
  p[1] = pg[ i[0]+1 ].w;
  p = p + i[1];

  // compute dot products between gradients and vectors
  float4 r;
  r[0] = dot( pg[ p[0] ].xy,   f);
  r[1] = dot( pg[ p[1] ].xy,   f - float2(1.0f, 0.0f) );
  r[2] = dot( pg[ p[0]+1 ].xy, f - float2(0.0f, 1.0f) );
  r[3] = dot( pg[ p[1]+1 ].xy, f - float2(1.0f, 1.0f) );

  // interpolate
  f = s_curve(f);
  r = lerp( r.xyyy, r.zwww, f[1] );
  return lerp( r.x, r.y, f[0] );
}

// 1D version
float noise(float v, const uniform float4 pg[B2])
{
  v = v + 10000.0f;

  float i = frac(v * BR) * B;   // index between 0 and B-1
  float f = frac(v);            // fractional position

  // compute dot products between gradients and vectors
  float2 r;
  r[0] = pg[i].x * f;
  r[1] = pg[i + 1].x * (f - 1.0f);

  // interpolate
  f = s_curve(f);
  return lerp( r[0], r[1], f);
}

void vmain(
    in float4 iPosition : POSITION,
    in float4 iNormal : NORMAL0,

    out float4 oColor0 : COLOR,
    out float4 oPosition : POSITION,

    const uniform float4x4 WmlRendererModViewProj,
    const uniform float4 NoiseTranslate,
    const uniform float4 NoiseScale,
    const uniform float4 Displacement,
    const uniform float4 pg[B2],
    const uniform float4 BaseColor)
{
  //float3 noisePos = iPosition.xyz*NoiseScale.x + NoiseTranslate.xyz;
  float3 noisePos = (iPosition.xyz+NoiseTranslate.xyz)*NoiseScale.x;

  //  float i = (noise(noisePos.x, pg) + 1.0f) * 0.5f;
  //  float i = (noise(noisePos.xy, pg) + 1.0f) * 0.5f;
  float i = (noise(noisePos, pg) + 1.0f) * 0.5f;

  float c = (i/2.0f)+0.3f;
  float3 color = BaseColor.xyz * c;
  oColor0 = float4(color.x, color.y , color.z, 1.0f);

  // displacement along normal

  float4 position = iPosition + (iNormal * i * Displacement.x);
  position.w = 1.0f;

  oPosition = mul(WmlRendererModViewProj, position);

}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久久国产精华| 亚洲r级在线视频| 久久久综合九色合综国产精品| 欧亚洲嫩模精品一区三区| 99久久精品一区| 99精品视频免费在线观看| av午夜精品一区二区三区| 成年人国产精品| 国产91精品免费| 成人a免费在线看| 色哟哟日韩精品| 欧美日韩电影一区| 日韩欧美123| 国产欧美久久久精品影院| 国产精品美女www爽爽爽| 亚洲柠檬福利资源导航| 亚洲成在线观看| 黄色小说综合网站| av亚洲产国偷v产偷v自拍| 欧美日韩免费在线视频| 亚洲精品在线观看网站| 国产精品久久精品日日| 亚洲女厕所小便bbb| 日韩中文字幕91| 高清不卡一区二区在线| 欧美自拍偷拍午夜视频| 欧美精品一区在线观看| 亚洲精品伦理在线| 久久成人免费电影| 91在线国产福利| 日韩女优毛片在线| 亚洲免费三区一区二区| 麻豆国产一区二区| a4yy欧美一区二区三区| 日韩亚洲欧美在线观看| 亚洲欧洲成人自拍| 免费看日韩a级影片| 国产福利一区二区| 欧美日韩在线播放| 国产欧美精品一区二区三区四区| 一区二区三区欧美| 国产精品一二三| 在线不卡中文字幕播放| 国产精品国产三级国产有无不卡| 性感美女久久精品| 国产一区二区三区视频在线播放| 91丨九色丨国产丨porny| 日韩一区二区高清| 一二三区精品视频| 成人久久视频在线观看| 日韩三级免费观看| 亚洲国产视频一区| 色哟哟国产精品| 欧美国产精品一区二区三区| 另类调教123区| 在线不卡的av| 亚洲一区二区精品视频| 波多野结衣精品在线| 精品99一区二区三区| 奇米精品一区二区三区在线观看一| 色综合久久综合| 中文字幕在线视频一区| 欧美午夜片在线看| 国产精品伦一区二区三级视频| 蓝色福利精品导航| 日韩视频免费观看高清完整版在线观看 | 欧美视频三区在线播放| 国产精品成人一区二区三区夜夜夜| 激情图片小说一区| 精品粉嫩aⅴ一区二区三区四区| 亚洲成av人**亚洲成av**| 欧美在线小视频| 亚洲一区二区三区四区中文字幕| 97se亚洲国产综合自在线| 成人欧美一区二区三区小说| 粉嫩13p一区二区三区| 国产欧美视频一区二区三区| 韩国精品在线观看| 国产午夜精品久久| 国产91高潮流白浆在线麻豆| 国产精品久久久久久久蜜臀| 久久国产尿小便嘘嘘尿| 欧美在线观看一区| 一区二区三区四区精品在线视频| 成人少妇影院yyyy| 国产精品久久久久久久蜜臀| 国产mv日韩mv欧美| 最新成人av在线| 欧美日韩在线播| 青青草国产成人99久久| 精品国产一区二区三区久久久蜜月| 亚洲综合色丁香婷婷六月图片| 欧美亚洲高清一区二区三区不卡| 五月综合激情日本mⅴ| 欧美变态tickling挠脚心| 国产精品小仙女| 国产精品视频观看| 91成人网在线| 美日韩黄色大片| 日韩区在线观看| 粉嫩蜜臀av国产精品网站| 国产精品国产三级国产三级人妇| 日本道精品一区二区三区| 亚洲午夜精品17c| 日韩免费一区二区三区在线播放| 国内欧美视频一区二区| √…a在线天堂一区| 欧美电影影音先锋| 不卡视频在线看| 一区二区三区四区五区视频在线观看| 91精品国产品国语在线不卡| 高清不卡在线观看| 亚洲国产wwwccc36天堂| 久久久亚洲高清| 欧美日韩中字一区| 国产99久久久国产精品 | 精品无人码麻豆乱码1区2区 | av在线不卡网| 美女视频一区二区三区| 舔着乳尖日韩一区| 久久久综合激的五月天| 欧美日韩精品专区| 99这里都是精品| 精品一区二区在线播放| 亚洲风情在线资源站| 亚洲国产精品成人综合色在线婷婷| 欧美日韩精品一区二区三区四区| 国产精品一区二区在线播放| 成人美女视频在线观看| 一区二区在线电影| 国产女人18水真多18精品一级做 | 亚洲一级二级在线| 日本一区二区三级电影在线观看| 欧美日韩一区二区三区在线看| 大陆成人av片| 国产一区二区女| 久久爱另类一区二区小说| 亚洲成人动漫在线免费观看| 亚洲女性喷水在线观看一区| 国产香蕉久久精品综合网| 欧美成人综合网站| 欧美一区二区精美| 欧美军同video69gay| 在线观看区一区二| 色先锋aa成人| 色婷婷av一区| 日本精品裸体写真集在线观看| 不卡的av在线播放| 成人久久视频在线观看| 国产不卡免费视频| 高清国产一区二区三区| 天堂成人国产精品一区| 亚洲精品成a人| 国产精品久99| 中文字幕日韩欧美一区二区三区| 国产精品免费视频网站| 欧美高清在线一区| 中文字幕一区在线观看视频| 中文字幕欧美日韩一区| 国产精品狼人久久影院观看方式| 国产精品成人一区二区艾草 | 全国精品久久少妇| 麻豆精品在线播放| 国产综合久久久久久鬼色| 国产一区二区免费视频| 国产sm精品调教视频网站| 99久久久国产精品免费蜜臀| 色综合天天做天天爱| 欧美揉bbbbb揉bbbbb| 69堂成人精品免费视频| 欧美成人video| 国产精品免费视频网站| 亚洲一级片在线观看| 99re成人在线| 国产69精品久久777的优势| www.欧美.com| 欧美日韩视频在线第一区| 欧美一二三区在线| 欧美国产乱子伦| 亚洲一二三专区| 国产一区二区调教| 色综合色狠狠综合色| 欧美www视频| 亚洲日本在线看| 六月丁香综合在线视频| 99国产精品国产精品久久| 5月丁香婷婷综合| 国产精品久久久久久亚洲毛片| 亚洲午夜激情av| 国产成人免费在线视频| 欧美日韩一区小说| 精品福利一区二区三区免费视频| 国产精品狼人久久影院观看方式| 午夜精品福利久久久| 成人性生交大片免费看在线播放| 欧美顶级少妇做爰| 亚洲丝袜制服诱惑| 国产精品亚洲第一| 欧美精品一二三区| 一区二区三区在线免费视频 |