原创 DirectX11 With Windows SDK--31 陰影映射

前言 陰影既暗示着光源相對於觀察者的位置關係,也從側面傳達了場景中各物體之間的相對位置。本章將起底最基礎的陰影映射算法,而像複雜如級聯陰影映射這樣的技術,也是在陰影映射的基礎上發展而來的。 學習目標: 掌握基本的陰影映射算法 熟悉投影紋理

原创 DirectX11--深入理解Effects11、使用着色器反射機制(Shader Reflection)實現一個複雜Effects框架

前言 如果之前你是跟隨本教程系列學習的話,應該能夠初步瞭解Effects11(現FX11)的實現機制,並且可以編寫一個簡易的特效管理框架,但是隨着特效種類的增多,要管理的着色器、資源等也隨之變多。如果寫了一套由多個HLSL着色器組成特效,就

原创 DirectX11 With Windows SDK--28 計算着色器:波浪(水波)

前言 有關計算着色器的基礎其實並不是很多。接下來繼續講解如何使用計算着色器實現水波效果,即龍書中所實現的水波。但是光看代碼可是完全看不出來是在做什麼的。個人根據書中所給的參考書籍找到了對應的實現原理,但是裏面涉及到比較多的物理公式。因此,要

原创 DirectX11--HLSL語法入門

前言 編寫本內容僅僅是爲了完善當前的教程體系,入門級別的內容其實基本上都是千篇一律,僅有一些必要細節上的擴充。要入門HLSL,只是掌握入門語法,即便把HLSL的全部語法也吃透了也並不代表你就能着色器代碼了,還需要結合到渲染管線中,隨着教程的

原创 DirectX11 With Windows SDK--29 計算着色器:內存模型、線程同步;實現順序無關透明度(OIT)

前言 由於透明混合在不同的繪製順序下結果會不同,這就要求繪製前要對物體進行排序,然後再從後往前渲染。但即便是僅渲染一個物體(如上一章的水波),也會出現透明繪製順序不對的情況,普通的繪製是無法避免的。如果要追求正確的效果,就需要對每個像素位置

原创 DirectX11 With Windows SDK--30 計算着色器:高斯模糊、索貝爾算子

前言 到這裏計算着色器的主線學習基本結束,剩下的就是再補充兩個有關圖像處理方面的應用。這裏麪包含了龍書11的圖像模糊,以及龍書12額外提到的Sobel算子進行邊緣檢測。主要內容源自於龍書12,項目源碼也基於此進行調整。 學習目標: 熟悉圖

原创 編譯原理--05 用C++手撕PL/0

前言 目錄 01 文法和語言、詞法分析複習 02 自頂向下、自底向上的LR分析複習 03 語法制導翻譯和中間代碼生成複習 04 符號表、運行時存儲組織和代碼優化複習 05 用C++手撕PL/0 在之前的編

原创 2020考研計算機有感

2020屆考研人數達到了史無前例的341萬人! 這幾年考研的人數越來越多,明年只會更多。對於21考研,我也不好說什麼,想衝就衝。但是對於22考研,一定要再三慎重考慮!趁着剛考完沒多久,在這裏我分享一下我的考研經驗教訓吧。 考試兩天 可以

原创 編譯原理--03 語法制導翻譯和中間代碼生成複習(清華大學出版社第3版)

前言 目錄 01 文法和語言、詞法分析複習 02 自頂向下、自底向上的LR分析複習 03 語法制導翻譯和中間代碼生成複習 04 符號表、運行時存儲組織和代碼優化複習 第7章 語法制導的語義計算 語義分析是上下

原创 編譯原理--02 自頂向下、自底向上的LR分析複習(清華大學出版社第3版)

前言 目錄 01 文法和語言、詞法分析複習 02 自頂向下、自底向上的LR分析複習 03 語法制導翻譯和中間代碼生成複習 04 符號表、運行時存儲組織和代碼優化複習 第4章 自頂向下的語法分析方法 確定的自頂

原创 編譯原理--04 符號表、運行時存儲組織和代碼優化複習(清華大學出版社第3版)

前言 目錄 01 文法和語言、詞法分析複習 02 自頂向下、自底向上的LR分析複習 03 語法制導翻譯和中間代碼生成複習 04 符號表、運行時存儲組織和代碼優化複習 第8章 靜態語義分析和中間代碼生成(續)

原创 編譯原理--01 複習大綱(清華大學出版社第3版)

前言 目前以手中這本清華大學出版社出版的編譯原理(第3版,張素琴等編著)作爲複習總結,因爲考試都是大題,一部分概念會被忽略。所有內容都需要通過舉例和推導來幫助加深理解,優先爲過幾天的考試服務。該文實現了教材中那些特別複雜的推導符號,並且這幾

原创 博客園排名長期統計和算法個人預估

概述 大概是從去年7月份開始,我看到一篇使用py爬取當前博客園的積分和排名的教程: 小玩具-博客園積分排名變動監控工具(Harmo) 然後一直到現在,只要博客園排名有更新,我就爬取並追加到自己的blogrank.txt裏面。 由於博客園沒有

原创 DirectX11 With Windows SDK--27 計算着色器:雙調排序

前言 上一章我們用一個比較簡單的例子來嘗試使用計算着色器,但是在看這一章內容之前,你還需要了解下面的內容: 章節 26 計算着色器:入門 深入理解與使用緩衝區資源 這一章我們繼續用一個計算着色器的應用實例作爲切入點,

原创 DirectX11--深入理解與使用緩衝區資源

前言 在Direct3D 11中,緩衝區屬於其中一種資源類型,它在內存上的佈局是一維線性的。根據HLSL支持的類型以及C++的使用情況,緩衝區可以分爲下面這些類型: 頂點緩衝區(Vertex Buffer) 索引緩衝區(Index Buf