原创 紋理映射(Texture Mapping)

當DirectxD 渲染圖元,必須將座標變換到二維屏幕。從紋理中爲每個像素獲取顏色過程,就是紋理過濾(texture filtering)。而屏幕顯示圖形大小和紋理貼圖大小是不同的。這樣紋理就會被放大或者縮小。如何將多個紋理元素的顏色融合

原创 3D 圖形轉換(3D Transformation)

1. 移動 圖形學中,有以下幾種空間概念: object space, world space, view space, projection space, 和  screen space 通常物品顯示出來,需要經如下變換      

原创 粒子系統

1. 基本原理 粒子系統由大量的粒子構成,每個粒子有大小,位置以及紋理,另外還有比如顏色,透明度,運動速度,加速度,自旋週期,生命週期等屬性 粒子系統隨時間不短變換,常經過下面幾個變換 1)產生新的粒子 2)更新現有粒子屬性 3)刪除已經

原创 light map 的改進策略

1,Lighting Technology of the Last Of Us(Sig 2013)   這篇文章主要闡述了兩個思想:1 烘培方向性  ,如下兩張圖的對比,可以看出   2,接縫的最小二乘法優化   二, Effic

原创 PBR開發相關知識導圖(及總結)

(導圖結構部分,參考淺墨) Specular  BRDF:    Specular D:  法線分佈函數(Normal Distribution Function) 描述微表面法線的概率分佈            各項同性: GGX[

原创 基於相片集的頭髮重建研究實現

        The overall flow is as described as follows. Firstly, we use colmap to get the frame pointcloud. After that, th

原创 《計算思維方式》摘要以及書評

  “編程解題的一般思維方法或過程,可以概述爲‘觀察-聯想-變換’, 通過對問題的觀察,認識;然後通過聯想,尋找問題同已有知識和經驗之間的聯繫;最後通過變換,轉爲另一個或幾個易於解決的新問題,最終達到解決問題的目的” ----- 在程序查

原创 貼花編輯器實現細節

前言 之前寫過一篇unity 的貼花編輯,當時是學習unity插件的代碼。最近因爲工作需要,做了一個可以編輯紋理局部貼花的功能實現。 大致上是根據以前的思想。但是自己用openGL 實現一遍,還是切身體會到不少深入的東西。 回顧之前的貼花

原创 智能指針

how to Access the C++11 smart pointers #include<memory> shared ownership with shared_ptr shared_ptr 類模板是一個 referenced-c

原创 簡單的紋理旋轉以及平移操作

實現效果,可以控制材質紋理的旋轉以及平移編輯。 實現思想:通過傳入shader 中的矩陣,利用鼠標的運動,影響控制紋理座標的改變,進而實現紋理的平移和旋轉操作 知識背景:矩陣的旋轉平移 實現步驟: 1.定義uniform,  2. 獲取

原创 頭髮的生成以及渲染方案

擱筆良久,今起復耕 本文主要涉及頭髮的生長方案,光照模型,陰影效果,透明效果以及多次採樣抗鋸齒。 一. 頭髮的生長:        定義根節點以及頭髮長度參數        頭髮從頭皮生長,根據mesh的UV展開圖,編輯頭部頭髮生長區域以

原创 遊戲中鼠標拾取方法

在遊戲中,鼠標拾取是不可或缺的。 一. 使用 D3DIntersect()選中模型Mesh 在D3D sample 中有一種方法,對鼠標軌跡線進行MVP 的逆變換,得到線在模型空間位置,然後使用 函數 D3DIntersect ,  和物

原创 unity 溶解貼花編輯器

實現的效果:        遊戲中,比如濺水花到牆壁上,然後水漬在牆上慢慢消融的這種效果 實現機制:         首先需要把水花貼到牆壁,這裏需要用到貼花的知識。然後,實現貼花消融的效果,需要一個溶解的shader。在貼花的實現中,有

原创 使用設計模式優化設計案例<一>

首先看一種簡單的實現打印二叉表達式樹                                                                                          簡單的實現: 使用sw

原创 光柵化

1. 視口轉換 2. 掃描轉換