原创 紋理映射(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. 掃描轉換