22-纹理透明阴影_第1页
22-纹理透明阴影_第2页
22-纹理透明阴影_第3页
22-纹理透明阴影_第4页
22-纹理透明阴影_第5页
已阅读5页,还剩26页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1纹理处理

1纹理简介

物体的表面细节称为纹理。颜色纹理或光滑纹理:光滑的物体表面上通过颜色或明暗度变化体现出来的细节。粗糙纹理、凹凸纹理或几何纹理:物体表面上呈现出凹凸不平的形状。

颜色纹理两种表示方法:数学模型:用数学函数表示颜色的变化规律。纹理映射:用纹理模式(如数字图像)表示颜色的变化。2颜色纹理

2颜色纹理曲面光照(每个小面片的光强可认为一个值)dudvvoidFullmall(CDC*pDC,floatx[],floaty[],floatz[],intn,int

R,intG,intB){变量定义计算扫描线范围ymin、ymax;for(h=ymin;h<=ymax;h++)//扫描线循环

{k=0;for(i=0;i<n;i++)//多边形边循环

if(y[i+1]!=y[i]&&(h-y[i])*(h-y[i+1])<0)xd[k++]=x[i]+(x[i+1]-x[i])*(h-y[i])/(y[i+1]-y[i]);//求交点

交点xd排序;

for(i=0;i<k;i=i+2) //两两交点循环

for(j=xd[i];j<=xd[i+1];j++)//交点内填充

{zz=-(a*j+b*h+d)/c;//计算填充点深度

if(zz<Zuff[j][h])//Z消隐

{Zuff[j][h]=zz;pDC->SetPixel(j,h,RGB(R,G,B));}}}}功能?

2颜色纹理voidEllipsoidFace(CDC*pDC,intA,intB,intC,floatdu,floatdv,floatcx,floatcy,floatcz,intdx,intdy,intLx,intLy,intLz,intIp,floatKd,intIe){变量定义;for(floatu=-1.57;u<1.57;u=u+du)for(floatv=0;v<6.28;v=v+dv){U[0]=u,V[0]=v,U[1]=u+du,V[1]=v,U[2]=u+du,V[2]=v+dv,U[3]=u,V[3]=v+dv;for(inti=0;i<4;i++){x[i]=A*cos(u)*cos(v),y[i]=B*sin(u),z[i]=C*cos(u)*sin(v);//计算椭球面上小平面坐标

分别绕x、y、z轴旋转cx、cy、cz,再平移dx、dy得到xx[i],yy[i],zz[i];

}xx[4]=xx[0],yy[4]=yy[0];//封闭四边形vector(x,y,z,a,b,c);d=-(a*x[0]+b*y[0]+c*z[0]);//计算平面系数

vx=Lx-xx[0],vy=Ly-yy[0],vz=Lz-zz[0];//计算光源矢量

cos1=(vx*a+vy*b+vz*c)/sqrt(vx*vx+vy*vy+vz*vz);//光源矢量与法矢的夹角余弦

I=Ip*Kd*cos1+Ie; //漫反射光+环境光

if(I<0)I=0;if(I>255)I=255;//限定到0-255范围H=120,S=0.8;HSI_RGB(H*3.14/180,S,I,R,G,B);Fullmall(pDC,xx,yy,zz,4,R,G,B);}}光照程序演示

①直接过渡(1)数学模型方法uH2u0-

/2

/2H(o)0H12颜色纹理vH2v002

H(o)0H1if(u<0)H=30;elseH=180;if(v<3.14)H=30;elseH=180;什么结果?

(1)数学模型方法2颜色纹理uH2u1u2-

/2

/2H(o)0H1②线性过渡if(u<u1)H=H1;elseif(u>u2)H=H2;elseH=(u-u1)*(H2-H1)/(u2-u1)+H1;【问题】为什么中间会出现绿色?

(1)数学模型方法2颜色纹理③非线性过渡H1uH2

-

/2

/2H(o)0H1【问题】如何得出关系式?H=A+Bsin(2m(u+1.57))H=0.5(H2+H1)+0.5(H2-H1)sin(2m(u+1.57))H1=30,H2=180m=5H1=0,H2=360m=5H1=0,H2=60m=1.5

(1)数学模型方法2颜色纹理③非线性过渡vH2

02H(o)0H1H=A+Bsin(mv)H=0.5(H2+H1)+0.5(H2-H1)sin(mv)H1=120,H2=240m=10H1=0,H2=360m=3(1)数学模型方法2颜色纹理西瓜颜色纹理①条纹纹理是饱和度不同造成的S=0.8|sin(5v)|②对条纹沿u参数方向进行周期干扰

S=0.8|sin(5v+0.15Sin(40u))|③进行二值处理当S<=0.4时S=0.4,否则S=0.8

(1)数学模型方法2颜色纹理冬枣颜色纹理H=50-30|((sin(u-ur)/2+sin(3u))+sin(v-vr)+sin(3v)|+sin(u/2-1)+sin(v+2))/4每一个小平面:ur=(rand()%314-157)/100.0vr=(rand()%628)/100.0(1)数学模型方法2颜色纹理7个控制点几段二次B样条?S=|sin(4

u)|S=|sin(10v)|S=|sin(x/n)|S=|sin(4

u)||sin(10v)|S=|sin(y/m)|S=|sin(z/k)|

(2)纹理映射建立物体表面的点与数字图像点之间的对应关系。圆柱曲面(u,v)与图像坐标(X,Y)的关系X=av+b

v=0,X=0

b=0v=6.28,X=w-1

a=(w-1)/6.28

X=v(w-1)/6.28v:[0,6.28]y=cu+d

u=0,Y=0

d=0u=1,Y=h-1

c=h-1

Y=u(h-1)u:[0,1]

x=rcos(v);

y=hcu;

z=rsin(v);2颜色纹理0,0w-1,0w-1,h-10,h-1xyU、V?

(2)纹理映射X=v(W-1)/6.28v:[0,6.28]Y=u(H-1)u:[0,1]

x=rcos(v);

y=hcu;

z=rsin(v);2颜色纹理for(floatu=0;u<=1;u+=du)for(floatv=0;v<=6.28;v+=dv){U[0]=u,V[0]=v,U[1]=u+du,V[1]=v,U[2]=u+du,V[2]=v+dv,U[3]=u,V[3]=v+dv;for(inti=0;i<4;i++){xx[i]=r*cos(V[i]),yy[i]=hc*U[i],zz[i]=r*sin(V[i]);

//计算圆柱面上小平面坐标

分别绕x、y、z轴旋转cx、cy、cz,再平移dx、dy得到xx[i],yy[i],zz[i]

}xx[4]=xx[0],yy[4]=yy[0];//封闭四边形

vector(xx,yy,zz,a,b,c);

vx=Lx-xx[0],vy=Ly-yy[0],vz=Lz-zz[0];//计算法向量和光源矢量

cos1=(vx*a+vy*b+vz*c)/sqrt(vx*vx+vy*vy+vz*vz);//光源矢量与法矢的夹角余弦

X=v*(w-1)/6.28,Y=u*(h-1);

RGB_HSI(pic[0][Y][X],pic[1][Y][X],pic[2][Y][X],H,S,I);

I=I+Ip*Kd*cos1;if(I>255)I=255;HSI_RGB(H,S,I,R,G,B);Fullmall(p,xx,yy,zz,4,R,G,B); } (2)纹理映射圆柱:X=v(w-1)/6.28v:[0,6.28]Y=u(h-1)u:[0,1]2颜色纹理遵守交通规则【问题】圆锥与圆柱的纹理映射是否一样?(2)纹理映射X=v(w-1)/6.28v:[0,6.28]Y=u(h-1)u:[0,1]2颜色纹理中国民族风:东北大花布(孔雀与牡丹)像什么?(2)纹理映射圆环曲面(u,v)与图像坐标(X,Y)的关系2颜色纹理0,0w-1,0w-1,h-10,h-1xyx

=(x0+rcosu)cosvy

=y0+rsinuz

=(x0+rcosu)sinv

X=v(w-1)/6.28v:[0,6.28]Y=u(h-1)/6.28

u:[0,6.28]玉:中国传统文化的一个重要组成部分“宁为玉碎”:爱国民族气节“化干戈为玉帛”:团结友爱风尚“润泽以温”:无私奉献品德“瑕不掩瑜”:清正廉洁气魄

(2)纹理映射球面坐标(x,y)与图像坐标(X,Y)的映射函数X=

v(w-1)/6.28v:[0,6.28]Y=??u:[-1.57,1.57]

x=rcos(u)cos(v);y=rsin(u);z=rcos(u)sin(v);2颜色纹理X=v(w-1)/6.28v:[0,6.28]Y=u(h-1)/3.14+(h-1)/2u:[-1.57,1.57]2颜色纹理(2)纹理映射X=av+b

v=0,X=x1

b=x1v=6.28,X=x2

a=(x2-x1)/6.28

X=v(x2-x1)/6.28+x1

v:[0,6.28]Y=u(h-1)/3.14+(h-1)/2

u:[-1.57,1.57]x1x22颜色纹理(2)纹理映射【提问题】X=v(w-1)/6.28v:[0,6.28]Y=u(h-1)u:[0,1]青花瓷:中国瓷器的主流品种之一X=v(w-1)/6.28v:[0,6.28]Y=y(h-1)/H;y:[0,H]长方体纹理映射ABCDA’B’C’D’2颜色纹理(2)纹理映射x=d11x’+d12

y’+d13x’

y’+d14y=d21x’+d22

y’

+d23x’y’+d24xa=d11x’a+d12

y’a+d13x’a

y’a+d14ya=d21x’a+d22

y’a+d23x’ay’a+d24xb=d11x’b+d12

y’b+d13x’by’b+d14yb=d21xb’+d22

y’b+d23x’by’b+d24xc=d11x’c+d12

y’c+d13x’c

y’c+d14yc=d21xc’+d22

y’c+d23x’cy’c+d24xd=d11x’d+d12

y’d+d13x’d

y’d+d14yd=d21xd’+d22

y’d+d23x’dy’d+d24解两个线性方程组,求出八个系数长方体纹理映射2颜色纹理(2)纹理映射如何生成魔方?

纹理扰动函数g(u,v)=Asin(2Cu)sin(Bv)

x=x0+rcos(u)cos(v);y=y0+rsin(u);z=z0+rcos(u)sin(v);

x=x0+rcos(u)cos(v)+ag(u,v);y=y0+rsin(u)+bg(u,v);z=z0+rcos(u)sin(v)+cg(u,v);3凹凸纹理

纹理扰动函数g(u,v)=Asin(2Cu)sin(Bv)

x=x0+rcos(u)cos(v)+ag(u,v);y=y0+rsin(u)+bg(u,v);z=z0+rcos(u)sin(v)+cg(u,v);3凹凸纹理v:[0,6.28]u:[-1.57,1.57]

3凹凸纹理for(floatu=-1.57;u<1.57;u=u+du)for(floatv=0;v<6.28;v=v+dv){U[0]=u,V[0]=v,U[1]=u+du,V[1]=v,U[2]=u+du,V[2]=v+dv,U[3]=u,V[3]=v+dv;for(inti=0;i<4;i++)

计算曲面上小面片4个点的坐标x[i],y[i],z[i]

计算小面片法向量

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论