directX实验四报告_第1页
directX实验四报告_第2页
directX实验四报告_第3页
directX实验四报告_第4页
directX实验四报告_第5页
已阅读5页,还剩14页未读 继续免费阅读

下载本文档

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

文档简介

1、精品文库 实验四DirectX光照、材质和纹理 实验报告 项目1: DirectX材质和光照实验 欢迎下载6 在例程Cube的基础上,完成以下步骤: 1)实现平行光照明。 2)黄色材质设定。 3)增加一个蓝色点光源。 在实验过程中注意灯光设置的方向、颜色等参数设定。 1)实现平行光照明 2)黄色材质设定 在头文件d3dUtility.h中添加光照的函数等等 dSd UtilityLh SCute 50 C: 5? X ddUtilhyuCp p delBte 1; cube.cpp 5C Sf5 56 57 5E 59 60 GL S2 63 6C. 05 06 67 es 69 70 CDi

2、nsI cohsl: CDnE const consl conji CDnsi cons! D3DXCOLOR DSDXCOLOE D3DXCOLOR DSOaCOLOR D3TXCOLOR D3D1ICOLOR DSOJICOLOE D3MCOLOR /Light 5 D3DLIGHT3 D3DIJGHT9 D3DLIGHT 0) 0); BLUE = D3T)BLOE_?断B g, 0, 2 di r ect i on, D IDKCOLORt c ol Q-r); InitDiteel lonalLisbrt (D了DJVECTO悶f InitPointLieht (D3DXVECTOE

3、3* roit 让 D3DK00L0R* coiot): InitSpotLight (D3DKVECrOR3* posn loti, LSDIYECTOES+ direc-t ion, D3LXC0L0R* color): iU.- n3DmERlAL lights Specular = *color * CL ; lights Posit ion = *po3illan: light.Range = 1000. Of; light. Fall off = l.Of; light. Attenust ionO = L Of ; 1 ight. At t enusl ion 1 = 05! R

4、ender St at e (D3DRS_L IGHTiNGj true). 2reate vertex and index buffers. /Cueat and set the mat erial D3DWERIAL9 mtrl; uitrl. Jbient = d3d:YELLOW, mt r I. Diffuse = d沁;:YELLOW, mtr1.Specular = d3d:YELLOW; mtrI,Emissive = d3d:BLACK. uitrl. Power = 5. Of ; DevLce-3etMat erial(femt rl): /Setup a directi

5、unal light D3DLIGHT9 dir; :ZeroMeiriory Uditj sireof (dir); dir.Type = DDLIGHT.DIRECTIONAL; dir.Diffuse = did: WHITE; dir. Specular = d3d;: WHITE * 0, 3f : dir. Ambient =(i3d: :imiTE +山旺: dir.Directlon = D3DSVECTOR3 (1. Of, 0. Of, 0. Of), Device-SetLight 4dir): Device-LightEnable (Oj true); D evi ce

6、-3et Render St ate (D 3DRS_iroRJlAL IZENOEMAL S, t rue Device-31Render St at e(D3DRS_SPECULAREKAELEj true); 注释与修改两串代码 /Device-SetRe nderState(D3DRS_FILLMODE, D3DFILL_WIREFRAME); mtrI.Emissive = d3d:BLACK; 运行结果如下 Direcl3D9App 然后改变光的方向 Direct JD9App 3)增加一个蓝色点光源 DJDLIGHTB dir; dir dir dir dir dir :Zero

7、Memary(ftdirj sizeof (dir); Type 二 D3DLIGHT_DIRECTIONAL, Diffuse = d3d: :1-*1 岂 1 右 口 X-. 吉 b E 1R -H. 吉 O 吉 話 Q O 冒 g 0 O 1 O I1 1 S b 1R S 1 O r 吉 1 冒 1 曽 S D g 0 11 1 弐 O 1 1 1 O 首 1 s a O 吉 0 S 0 0 営 O 営 O O 首 O 1 1 曽 1 1 O r 吉 O i O B 宜 B O 11 宜 d 11 宫 1 1 O S O 1 1 1 O 1R 1 疹 6 1 1 1 9 I S 0 S

8、 1 11 1 V 1 1 1 11 営 1 1 F 1ri 1 i 迸 1 11 迸 1 11 1 B O 1 O 1 P J 1 哲 1 1 誉 I 1 1 1 11 莒 1R 1 1 1 1 E 6 E S 1 _1 -WI 二当s d ”当s r告d ”占s r告二 誉匸 3口 d “吉s 二 誉二 rjcri 丄 stFA hSEQyt? 官二丄 SEA u iMjs舄:I-ISA (msITgsss OIYSIHSSS uvsznjsss 出誥土QA 宀二j誥土mA (0 (L 精品文库 1 我调试的时候代码确实是没有错误的,但出现了一个奇怪的梯形,通过查网 络、问同学都没能解决这

9、个问题。希望老师能够谅解。 项目3:网格模型实验 在项目1的程序基础上完成一下步骤: 1)用bigship1.x创建一个飞机网格模型。 2)在场景中增加摄像机类,实现键盘控制的三维控件漫游。 0; IDirect3DDsvice9* Device = const int Width = 640: const int Height = 430; 欢迎下载11 IDSDKMesh* ID3DKPHesh* st d: : vect 0r std: :vector ScurceMesh = 0; PMesh = 0; / progressive mesh Htrls(D): Textures(0):

10、 S/.- / Framework functions ./ Bbool Setup 0 HRESULT hr = 0; / Load the XFile data. ID3DKBuffer* adjEuffer = 0; iDSDKBuffer* urt rlBuffer = 0; DWORDnujidtrls = 0; hr =D3J)XLoadlle3KFroiiiX ( bigship I.筈, D/MHESH-MAHAGED, Device F口irvter Oj / slv adjacency iirfo u Fsssh邑】 二Mesa网CBS s* ptlI:GInpLa3 0

11、I FAILED卩 0二 sd二EelssAISSB匚ffesxadjBurfel;/ free 玄匚m faLwe - H EI3G33atAFMSh sourceMmh* 精品文库 欢迎下载16 hr = D 3DXGenerat ePMesh( SourceMesh, (DWORD*)adjBuffer-GetBufferPoint er C)/ adjacency Oj/default vert ex altribut e weights D,/default vert 1,/simplify as D3DKMESHSIHP_FACE, /simplify by ex weight s

12、 IcM as possible face count d3d: :Release (SourcelHesh): d3d: : Release (adjBuff er); / done v/ sourue mesh / done wf buffer if (FAILED (hr) :Me33ageBoz(0, *D3DXGeneratePHesh () return false: -FAILED笃 0, U). / set to original delai1 DWED mazFaces = PMesh-XetHaxFaces (): DWORD jnaxFaces = PMesh.-Cet

13、HaxFaces (): FWesh-5etriujiFaces (iRanFaces); / Set texture filters, / Device-SetSajilerState (0, Device-Set Sampler St at e tOj Device-SetSamplerState(0, D3DSW_MAGFILTER, L3DSW_RIHFILTEK, D3DSAHP MPFUTEK D3DTEXF_LIHEAR); r3DTEKF_LIWEAK); D3DTEXF POINT): DDXVECT0R3 dir (1. Of, -J. Of, l.Of); D:3DXCO

14、LOR colfLOf, l.Of, L Of, LOf): DMDLKHTg liglit = d3d: t InitDirectianalLisht ( Device- Set Render St ate fD3DRS NORJIALI ZEHOIiMAL S. t rue): / Set camera. / D3DXVECIOR3 pos(-S,Of, 4,Of, -12.Of); D3DXVECTOR3 target CO. Ofj 0. Of, 0. Of): D3DXVECTOR3 up CO. Of, 1.Of, 0.Of); D3DXNATRIK V: D3DXMatrixLo

15、okAtLHC D 3DXFa1: r ixP erspect iveF ovLH ( 如 roj, D3DK_PI * 0,/ 90 - degree (fLoat)Vidth / (float)Height, LOf, 1000.Of ; Dftvice-SetTransfrm(D3DTS_PROJECTlOH, ftproj); return true; void Cleanup() dad:Release(PMeEh); for (int i = 0; i Textures, sizeC): i+) d3d:Release(Texturesi): ihool display (floa

16、t t imeDelta) I 口 -D V -s 毛磊巴dA-aQTAalJ 一 ogmusptIMZmaQ I 宀 二 9 7旨 lI BOE tl rHgwyll Hsutlc s ”右奋 X puaa 缶 m u Em ft 二-Q .sqns*a2wd 二HWy 口 HOE tl SOTIsstlc a) mpu出坨 5 m u Em ft 二TLUTSTIaJU 是祕IG次ETSQ 岂二甘口 曲启J先;ITrn mmjlp 二 _ (Tj .BMqnwmEzalqwuwd 二 m Em jn旨I 占)巴n五14贡舟AStl 二口HU蛋色TErHg芾in舅仝昌 qsmwa MmHP zy 十 - omHIm mIHFW : ofl;IurvJ】w30flJlfnNF35llIwmd (舸u讨;pimii m 0 林尸5工wuwd) J5 【I + WUUE;plm】rtuueJmNUSAIHWUWd UCJT:4E11UOJ.WUEJ:I. usaEIICJU wwpu HE 、 zpaALTC op auE如 妁S

温馨提示

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

评论

0/150

提交评论