最近在學習DirectX3D,目前的學習路線是龍書+X_jun同學的博客:https://blog.csdn.net/x_jun96/category_8596621.html
接下去整理一下博客中每一節的課後習題,如果解答有問題,請各位同學批評指正。
共勉!(#^.^#)
注:有些問題博主也沒有解決,逐漸完善中。。。
———————————————
- 嘗試修改本章Demo的光照,讓方向光只射出紅光,點光燈只射出綠光,聚光燈只射出藍光。
-》修改每一種光源的環境光、漫反射光、高光的顏色分量
- 嘗試修改本章Demo所用到的材質,讓其只反射紅光。
-》與第一題類似,修改材質的顏色分量:
- 嘗試修改本章Demo所用到的聚光燈,通過鼠標滾輪的形式,對光照匯聚強度增加/減少,範圍爲
- 嘗試修改本章Demo所用到的材質,看看如果鏡面反射強度的值小於1會發生什麼情況。'
w代表光照匯聚強度
出現光照的過渡效應可能和光照公式有關: - 實現一個函數用於創建膠囊(capsule)幾何體,需要指定上下半球的半徑(radius)、柱體部分高度(height)、球面三角形切片數(slices)和上下半球的層級數(levels),並且實現頂點要包含位置(position)、法向量(normal)。若已經接觸過紋理映射與法線貼圖,則可以考慮額外實現紋理座標(texcoord)和切線向量(tangent)
- 修改當前演示程序,首先禁用背面剔除(D3D11_CULL_NONE)並運行程序;隨後,再代以正面剔除(D3D11_CULL_FRONT)試之。用線框模式輸出程序的繪圖效果,可便於我們觀察不同剔除模式之間的繪製差別。
-》禁用背面剔除(D3D11_CULL_NONE):
-》正面剔除(D3D11_CULL_FRONT):
-》背面剔除(D3D11_CULL_FRONT):
這樣修改可以同時繪製出線框和麪,但是由於顏色是一樣的所以看不出效果
解決辦法是讓線框和麪繪製出來的顏色不同,但是博主目前還沒有找到辦法
效果:可以看出來正方體邊緣的鋸齒狀比之前要明顯,這是線框疊加帶來的效果
- 利用光柵化狀態,嘗試同時畫出立方體和其三角形邊界(題圖無光照)
尚未解決。。。