2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 第十二章 燈光、背景與天空包.

Slides:



Advertisements
Similar presentations
怎樣睡的舒適又健康? 請把這封信轉寄給你所關心的人 睡姿最好採取半側臥,可保證全身放鬆,氣血順暢。不過 無論怎樣的睡姿,以「舒適放鬆」為最好。 中醫有「不通則痛」之說,良好的睡眠姿勢,保證週身氣 道通達, 血絡順暢,可以調氣養神,濡養脈絡,消除疲勞 ,滋養精神。「坐如鍾、站如松、臥如佛 …… 」我們的先人.
Advertisements

我国国有银行 资本构成及资本充足率变化 小组成员:金融 尹佳裕 王淼 刘钰 金融 吴昱.
财务管理 利 润 分 配 利 润 分 配 嘉善中专 杨晓燕. 二、利润分配的项目及顺序 第三节 利润分配 一、利润分配的原则 财务管理 >> 第六章 >> 第三节 三、利润分配政策及影响因素.
我的未来不是梦 攀枝花市经贸旅游学校. 1. 文中案例王萍苦恼的原因是 什么? 2. 你有哪些办法可以帮助王萍? 导入 思考  谁来帮帮她?
                                                 伊朗 的今生 与前世 (2)
第八章 组织文化的整合 ——并购中的文化整合(二) 小组成员:浦若蓉、朱谷一、贾彦彦.
2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 第六章 3D繪出管道流程、著色器與特效檔.
客家文化的內涵與傳播 潘朝陽 臺灣師大國際與僑教學院院長 臺灣師大東亞系、地理系教授 臺灣師大全球客家文化研究中心主任
第一节 两者之间的差异分析 第二节 总体内部的差异分析 第三节 计算器的使用
实证 作业:语言调查 赵万林 哲社学院 学号:
怎樣睡的舒適又健康? 請把這封信轉寄給你所關心的人 每 60 秒自動換頁 ,敬請慢慢體會 , 或按一下跳下頁 . 公 益‧分 享 音樂 :
变态反应疾病的药物治疗 --荨麻疹的药物治疗
─視覺藝術的元素.
第四章 從分裂到統一 第一節 漢唐之際的大變動
第四章 從分裂到統一 第一節 漢唐之際的大變動
农业银行网上签约流程 宁夏金溢投资 内部资料 1.
廉政會報專題報告 農地重劃工程 施工常見缺失 報告:吳東霖 製作:張昌鈴 日期:103年12月23日.
專案製作經驗談.
怎樣睡的舒適又健康? 請把這封信轉寄給你所關心的人 每 60 秒自動換頁 ,敬請慢慢體會 , 或按一下跳下頁 .
湖北省,简称“鄂”,为中华人民共和国省级行政区。湖北在中国中部、长江中游、洞庭湖以北,介于北纬29°05′至33°20′,东经108°21′至116°07′;北接河南省,东连安徽省,东南和南邻江西、湖南两省,西靠重庆市,西北与陕西省为邻。东西长约740公里,南北宽约470公里,面积18.59万平方公里,占全国总面积的1.95%,居全国第13位。省会是中部地区唯一的副省级城市--武汉市。
现代社会生活中的压力症,是人们身心疾患 发生的根源。在学习企业管理培训课程的时候, 明白了当人们遇上"压力"时,最初的反应便是"
「但圣灵降临在你们身上,你们就必得着能力,
102學年度預算編製說明會 主辦單位:會計室 102/02/22.
拟动力试验 伪动力试验,计算机加载器联机试验 地震发生和传播的随机性 周期性加载的加载历程是假定的,与实际地震的非周期反应有很大差别
金門縣重大空難應變機制-消防局 壹、消防搶救、滅火、緊急救護 一、派遣作為:
新时代的劳动者 杜蒙绮.
新約概論 台中生命之道靈糧堂 2007年3月4日.
早期的阿拉伯半島 地理環境: 生活情形 (一)三面環海,大多為荒涼貧瘠的沙漠,不利農耕
第9课 北美大陆上的新体制 导入新课 新课教学 课堂小结 知识结构 巩固练习
ANDROID 中的 3D 繪圖 作者:陳鍾誠.
2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 2D圖形與字型的呈現.
2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 第五章 頂點定義與基本形狀的繪出.
2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 第九章 相機類別與玩家角色.
Visual Basic 物件導向程式設計簡介.
Chap3 Linked List 鏈結串列.
高雄醫學大學個人申請不分系招生(薪火A~D組) 助學措施說明
南瑞学堂 学员简明操作指南 上海时代光华教育发展有限公司 2013年.
CLICK HERE TO ADD YOUR TITLE
桃李春风结子完,到头谁似一盆兰?如冰水好空相妒,枉与他人作笑谈。
亞伯拉罕 摩西 猶太教徒 割禮 + 律法 成為神子民 的記號 神子民的 行為規範 結婚戒指 婚姻守則.
本章學習目標 學習極座標繪圖與對數繪圖 學習雙y軸繪圖 學習向量場繪圖 學習統計繪圖 在Matlab的環境裡製作動畫
CLICK HERE TO ADD YOUR TITLE
72% 29% 33% ADD YOUR TITLE HERE 点击此处添加文本信息。
使用服务平台办理离校 操作指南.
Xxxx集团有限公司 封面页.
Quiz7 繳交期限: 12/14 23:59.
第十三單元 旋轉體的體積-剝殼法.
学年第一学期领取教材明细查询的通知 学年第一学期学生使用的教材均在网上平台公示。现将有关事项通知如下:
2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 第三章 XNA 遊戲程式基本架構.
埃及永生之旅 報告者:陳菱霙.
體積.
30% 30% CLICK HERE TO ADD YOUR TITLE CLICK HERE TO ADD YOUR TITLE
函數應用(二)與自定函數.
B A C D ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT ADD YOUR TEXT
「但圣灵降临在你们身上,你们就必得着能力,
河口生態系 紅樹林.
ADD YOUR TITLE HERE ADD YOUR NAME.
Quiz1 繳交期限: 9/28(四).
Click here to add your title
「但聖靈降臨在你們身上,你們就必得著能力,
所得稅法第14條、第126條修正條文 薪資所得計算方式二擇一 定額減除 特定費用減除 維持現行薪資所得特別扣除額20萬元減除方式
第四教学项目 话剧排练及影视鉴赏.
中式烹调技艺 第五章.
Windows Phone Game 行動遊戲開發
Scratch: 動畫或遊戲編程 任務3:海洋世界.
第十章、核銷系統操作之注意事項.
就學貸款 相關注意事項 學生事務處 /生活輔導組.
生命銀行 生命銀行.
Click here to add your title
03 Click here to add your text.Click here to add your text.Click here to add your text.Click here to add your text.Click here to add your text.Click here.
Presentation transcript:

2D / 3D 遊戲程式設計入門 使用 XNA 3.0 與 C# 第十二章 燈光、背景與天空包

本章目的 討論簡單的BasicEffect的燈光實作方式 2D背景圖形 立方體天空箱與半圓形天空包的實作方式

3D光源著色的運算

光源的元素 環境光(Ambient) 擴散光(Diffuse) 反射光(Specular)

質料(Material) 環境光(Ambient) 擴散光(Diffuse) 反射光(Specular) 反射光的反應強度 自發光(Emissive)

3D光源著色元素成分的對應方式

環境光 環境光是代表場景周遭的光源來源,每一個光源都可以設定它對環境光的貢獻度。 在實際的場景上,環境光是周遭物件相互反射光源所形成的亮度,但是在程式實作上,卻是很難即時的去完成這麼複雜的運算。 所以在程式實作上就簡化了環境光源形成的原因,而將環境光的形成歸功給每一個單一光源。

實際的環境光形成方式

簡化的環境光運算方式

擴散光 擴散光是均勻反射的光線成分,與相機的觀測角度無關,只需要考量光源的方向與頂點的法向量

夾角相對於擴散光的貢獻度 當光源的反方向與頂點的法向量的角度愈小,光源的擴散光的貢獻度就愈大;反之,當角度愈大光源的擴散光的貢獻度就愈小;如果角度等於或大於90度該頂點就不接受光源的擴散光

反射光 反射光(Specular) 是朝特定方向反射的光線成分,其目的是要呈現物件表面上的亮點,當然亮點是和觀測的角度有關的,也就是和相機的向量是有關的。 其計算方式是先以頂點的法向量為中心線計算出以光線的反射向量 再以反射向量和相機的向量計算出該頂點具有多少反射光的顏色

BasicEffect 的質料設定 BasicEffect effect; .... \\對環境光的接受度是紅色10%、綠色20%、藍色30% effect.AmbientLightColor = new Vector3(0.1f, 0.2f, 0.3f); effect.DiffuseColor = new Vector3(0, 0, 1); effect.SpecularColor = new Vector3(0.5f, 0.6f, 0.7f); \\自發光是紅色的 effect.EmissiveColor = new Vector3(1, 0, 0); \\反射光的強度是10 effect.SpecularPower = 10;

BasicEffect 的光源設定 內定的光源 effect.EnableDefaultLighting(); 白色光源 射往(-1,-1,-1)方向 帶有些許的環境光 自設的光源 至多三個 可設定方向、擴散光(Diffuse)和反射光(Specular)

BasicEffect 的光源設定 BasicEffect effect; effect.DirectionalLight0.Enabled = true; \\ 第一個有向光 \\ 對擴散光的貢獻度是紅色100%、綠色100%、藍色100% effect.DirectionalLight0.DiffuseColor = new Vector3(1,1,1); \\方向是射向(-1,-1,-1) effect.DirectionalLight0.Direction = new Vector3(-1.0f, -1.0f, -1.0f); \\對反射光的貢獻度是紅色50%、綠色50%、藍色50% effect.DirectionalLight0.SpecularColor=new Vector3(0.5f,0.5f,0.5f); Similarly, we can define Light1, LIght2.

範例一:使用BasicEffic呈現燈光效果 W、S:相機在X軸的旋轉角度控制 A、D:相機在Y軸的旋轉角度控制 Z、X:相機的遠近距離控制 空白鍵:相機回歸初始狀態

範例一:使用BasicEffic呈現燈光效果 protected override void Draw(GameTime gameTime) { graphics.GraphicsDevice.Clear(Color.CornflowerBlue); // TODO: Add your drawing code here foreach (ModelMesh mesh in myModel.Meshes) { // 設定網格的呈現效果 (世界、觀測、投影矩陣) foreach (BasicEffect effect in mesh.Effects) { effect.World = transforms[mesh.ParentBone.Index] * Matrix.CreateScale(0.04f); effect.View = camera.view; effect.Projection = camera.projection; effect.EnableDefaultLighting(); // 有向光 白光 (-1,-1,-1) 射過去,有 環境光 \\質料設定 effect.AmbientLightColor = new Vector3(0.5f, 0.5f, 0.5f); effect.DiffuseColor = new Vector3(0, 0, 1); // 1. effect.EmissiveColor = new Vector3(1, 0, 0); effect.SpecularColor = new Vector3(1.0f, 1.0f, 1.0f); effect.SpecularPower = 10; // 2. effect.PreferPerPixelLighting = true; \\像素打光設定 } // 畫出在 模型 中的 某一個 網格 mesh.Draw(); } axis.View = camera.view; axis.Projection = camera.projection; base.Draw(gameTime); } }

範例一:使用BasicEffic呈現燈光效果 試著將//1和//2兩個comment個別或一起刪除,觀其效果 // 1. effect.EmissiveColor = new Vector3(1, 0, 0); // 2. effect.PreferPerPixelLighting = true; \\像素打光設定 Exercise: 使用第十二章範例一中的打結甜甜圈當一個固定的PC: (1)光源點固定, 設計相機經由自動或手動繞行此PC一圈,經由不同的角度觀察打結的甜甜圈。 (2) 相機固定,設計一移動的光源(如太陽)經由自動或手動繞行此PC一圈,觀察來自不同方向的光源對PC的景觀產生的變化。

立體紋理圖

立體的紋理圖的相對位置

2 x 2 x 2立方體的座標位置

The End