(Translated by https://www.hiragana.jp/)
凹凸贴图 - 维基百科,自由的百科全书 とべ转到内容ないよう

凹凸おうとつ贴图

本页使用了标题或全文手工转换
维基百科ひゃっか自由じゆうてき百科ひゃっかぜん
凹凸おうとつ贴图てき球体きゅうたい;しも图所ようてき凸凹おうとつ纹理;这个使用しよう凹凸おうとつ贴图てき球体きゅうたい几何じょうあずか上面うわつらてき球体きゅうたいいちいち样,这改变了球体きゅうたいてき浓淡效果こうか使つかい它看おこりらいぞういちだいだい

凹凸おうとつ贴图(bump mapping),またたたえため凸凹おうとつ纹理うつしわめんいち计算つくえ图形がくわざ术,ざい这项わざ术中ごと个待渲染まとぞうもとざい计算照明しょうめいぜんようじょういち个从高度こうどちゅう找到てき扰动。这样いたてき结果表面ひょうめんひょう现更丰富、细致,さら接近せっきん物体ぶったいざい自然しぜんかい本身ほんみてき样。ほう线贴图一项常用的凹凸贴图技术,另外还有许多其它てき实现わざ术,如视差うつひとしひとし

具体ぐたい实现

[编辑]

BMEMわざ

[编辑]

BMEMわざ术通过一张叫做高度图(Height map)てきはい图来储存ごと一点的高度信息然后直接由API处理。[1]

ほう线贴图法

[编辑]

ただしこと实上ゆう戏编ほど员却通常つうじょう并不使用しようBMEMわざ术,いん为他执行速度そくど慢,いん此他们通常つうじょう使用しようDP3わざ术:直接ちょくせつ高度こうど图(Height map)转换なりいち张法线图(Normal Map),其图てきRGBぶん别是ばら高度こうど图该てんてきほう线指向しこう:Nx、Ny、Nz,这张图可ゆかりDirect3Dてき专门函数かんすう帮助わが们计さんさいきさきざい渲染てき时候直接ちょくせつはた该高图的ごと个像もとあずか光源こうげんてきむこうりょうてんじょうそくいた表示ひょうじごと一点的明暗系数的图:すえ高度こうど图,えつ突出とっしゅつてき地方ちほうほう线与光源こうげん夹角えつしょう,该点てきすう值越だい接着せっちゃくはた这张图乘いた渲染线中そく,这样就使模型もけいざいこうてき凹处ゆう阴影而在めんこう光源こうげん处更あきらてき效果こうか,这样てき3D模型もけいおこりらい就像しんてき凹凸おうとつ不平ふへいいち样。这些直接ちょくせつざい渲染流水りゅうすい线中よしつくえ完成かんせい

具体ぐたい以使よう以下いか简单てき语句らい实现:

//はた光源こうげん位置いち转换なるARGB
DWORD Vector2ARGB(D3DXVECTOR3 *v,float height)
{
DWORD r=(DWORD)(127.0f*v->x+128.0f);
DWORD g=(DWORD)(127.0f*v->y+128.0f);
DWORD b=(DWORD)(127.0f*v->z+128.0f);
DWORD a=(DWORD)(255.0f*height);
return((a<<24L)+(r<<16L)+(g<<8L)+b);
}
//生成せいせいほう线图
D3DXComputeNormalMap(pNormalMap,pHeightMap,NULL,0,D3D_CHANNEL_RED,1.0f);//pHeightMap为原高度こうど图的ゆび针,pNormalMap为一张空纹理,よう于存ほう线图
//ざい渲染ほどついで段中だんなか以这样写:
DWORD F=Vector2ARGB(&light,0.0f); //light单位てき光源こうげんむこうりょう
pD->SetRenderState(D3DRS_TEXTUREFACTOR,F);//pDD3Dてき设备ゆび针,这句はた光源こうげんほう线参すう输入
pD->SetTexture(1,TEXTURE);//设置げん纹理,如上じょじょうめんてきたま,如有需要じゅよう以贴じょう纹理样式
pD->SetTexture(0,normalmap);//使用しよう上面うわつら生成せいせいこのみてきほう线图
pD->SetTextureStageState(0,D3DTSS_COLORARG1,D3DTA_TEXTURE);//设置“らいみなもと1”为法线图
pD->SetTextureStageState(0,D3DTSS_COLOROP,D3DTOP_DOTPRODUCT3);//はたらいみなもと1”(ほう线图)あずからいみなもと2”(光源こうげんほう线)进行てんじょう
pD->SetTextureStageState(0,D3DTSS_COLORARG2,D3DTA_TFACTOR);//设置“らいみなもと2”为光线的光源こうげんほう线参すう
pD->SetTextureStageState(1,D3DTSS_COLORARG1,D3DTA_TEXTURE);//这步下面かめん几步はた图片てきげん纹理じょう
pD->SetTextureStageState(1,D3DTSS_COLOROP,D3DTOP_MODULATE);
pD->SetTextureStageState(1,D3DTSS_COLORARG2,D3DTA_CURRENT);

かり凹凸おうとつ贴图

[编辑]

三维计算机图形ほどじょ员有时使用しよう计算りょう较小てきかり凹凸おうとつ贴图凹凸おうとつ贴图效果こうか。其中いち个方ほう使用しよう纹素索引さくいん变化だい曲面きょくめんほう线变,这种方法ほうほう常用じょうよう凹凸おうとつ贴图。ざいGeForce 2类型てき图形加速かそくかたけんちゅう就使ようりょう这项わざ术。

ぜんへいてき二维假凹凸贴图,以很容易よういよう简单快速かいそくてき渲染循环实现,ざい十世纪九十年代的示范影像是一个非常普通的视觉效果こうか

あずかくらいうつうつしゃ间的

[编辑]

くらいうつうつあずか凹凸おうとつ贴图间区别在れい图中やめ经很あかり显地显现出来できりょうざい凹凸おうとつ贴图ちゅうただゆうほう线进ぎょうりょう扰动,而几なんたい本身ほんみぼつゆう扰动,这样てき结果就是じん为改变只现在物体ぶったいてき轮廓じょう,而球体きゅうたい本身ほんみ仍然ばららいてき圆形。そく凹凸おうとつ贴图ただ视觉じょうてきあらため变,就像一个画得很透视的图片;而位うつりうつ却真てきしょう3D物体ぶったい变得“凹凸おうとつ不平ふへい”。

まいり

[编辑]

参考さんこう资料

[编辑]
  1. ^ Technologies, Unity. Unity - Manual: Heightmap. docs.unity3d.com. [2017-09-25]. (原始げんし内容ないようそん于2017-09-26) えい语). 

参考さんこう文献ぶんけん

[编辑]
  • Blinn, James F. "皱纹表面ひょうめん拟", Computer Graphics, Vol. 12 (3), pp. 286-292 SIGGRAPH-ACM (August 1978)

外部がいぶ链接

[编辑]