1. 程式人生 > 實用技巧 >高真實感複雜光照環境場景模擬——需求分析和概念原型

高真實感複雜光照環境場景模擬——需求分析和概念原型

(乍一看,我這個題目就相當地不適合寫這一套……)

1. 前置知識

題目:進行用例建模、業務領域建模、資料建模、最終形成概念原型。

對應要求:畫出專案的完整用例圖、畫出專案的業務類圖、給出專案的資料模型、總結出概念原型並舉例說明概念原型的工作過程。

1.1 名詞掃盲

書面化的東西就不說了,說說我自己的理解。

建模:用某種形式化的一套東西來描述實際問題,這樣能方便分析問題(以及讓不明就裡的人更不明就裡)。

用例:簡單理解為動名詞短語,其實就是某個系統裡發生的一些重要過程。

概念原型 = 用例 + 資料模型。類比為 程式 = 演算法 + 資料結構 就好理解多了。

1.2 專案說明

好了,所以為什麼我說我的題目很不適合,一是因為上述這一套是針對 功能性需求

設計的,而我的題目全是關於 非功能性需求 的;二是對於這種模擬型別的題目,並不涉及龐大的系統以及其中的互動,而是關注在系統中某些特定的點。

我的題目簡略來說就是:基於 UE4 引擎,表現一個高度真實的帶有複雜光源環境的場景,並能在移動端流暢執行。大概包括:

  • 第一部分:移動渲染管線下的延遲渲染的實現
  • 第二部分:海水、風、天空、天氣效果的實現

就拿延遲渲染說,它本身就屬於 Efficient Shading,本身就是為了提高效率,這顯然是非功能性需求……不過如果把概念原型理解成演算法與資料結構,倒也還可以分析分析。這裡就以第一部分為例進行下去。

2. 用例圖

3. 業務類圖

4. 資料模型

渲染資料一般包括著色器的程式碼、幾何資料、紋理資料、渲染狀態等,它們會被封裝成不同的檔案型別,具有不同的操作特性。資料在圖形API中以資料流的形式在各種階段被傳遞。

5. 概念原型

所以專案的概念原型其實非常直觀,就是我們編寫的程式,向圖形API提供渲染資料,然後圖形API向驅動提交渲染命令。所謂延遲渲染與傳統渲染的區別,從這個概念原型的層次來看,就是——得到一次渲染結果,要經過多遍渲染過程。