學習X_Jun的D3D教程:07光照和光柵化課後習題

最近在學習DirectX3D,目前的學習路線是龍書+X_jun同學的博客:https://blog.csdn.net/x_jun96/category_8596621.html

接下去整理一下博客中每一節的課後習題,如果解答有問題,請各位同學批評指正。

共勉!(#^.^#)

注:有些問題博主也沒有解決,逐漸完善中。。。
———————————————

  1. 嘗試修改本章Demo的光照,讓方向光只射出紅光,點光燈只射出綠光,聚光燈只射出藍光。
    -》修改每一種光源的環境光、漫反射光、高光的顏色分量


     
  2. 嘗試修改本章Demo所用到的材質,讓其只反射紅光。
    -》與第一題類似,修改材質的顏色分量:


     
  3. 嘗試修改本章Demo所用到的聚光燈,通過鼠標滾輪的形式,對光照匯聚強度增加/減少,範圍爲
     
  4. 嘗試修改本章Demo所用到的材質,看看如果鏡面反射強度的值小於1會發生什麼情況。'



    w代表光照匯聚強度
    出現光照的過渡效應可能和光照公式有關:
  5. 實現一個函數用於創建膠囊(capsule)幾何體,需要指定上下半球的半徑(radius)、柱體部分高度(height)、球面三角形切片數(slices)和上下半球的層級數(levels),並且實現頂點要包含位置(position)、法向量(normal)。若已經接觸過紋理映射與法線貼圖,則可以考慮額外實現紋理座標(texcoord)和切線向量(tangent)
  6. 修改當前演示程序,首先禁用背面剔除(D3D11_CULL_NONE)並運行程序;隨後,再代以正面剔除(D3D11_CULL_FRONT)試之。用線框模式輸出程序的繪圖效果,可便於我們觀察不同剔除模式之間的繪製差別。
    -》禁用背面剔除(D3D11_CULL_NONE):


    -》正面剔除(D3D11_CULL_FRONT):

    -》背面剔除(D3D11_CULL_FRONT):


    這樣修改可以同時繪製出線框和麪,但是由於顏色是一樣的所以看不出效果
    解決辦法是讓線框和麪繪製出來的顏色不同,但是博主目前還沒有找到辦法

    效果:

    可以看出來正方體邊緣的鋸齒狀比之前要明顯,這是線框疊加帶來的效果

  7. 利用光柵化狀態,嘗試同時畫出立方體和其三角形邊界(題圖無光照)
    尚未解決。。。

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章