香港六合彩

1,310 views

Published on

我的香港六合彩处境好了,心里还是舍不下姓董的香港六合彩女孩,我忘不了和她相处的时日,忘不了她曾经带给我的香港六合彩欢乐。现在,我不但合同工转了正,还当上了工会干部,她所说的香港六合彩障碍已经不存在了,我们的关系应该可以重新恢复了吧?我满怀香港六合彩诚意地去找她,谁知她竟坚决拒绝和我见面,连香港六合彩电话也不接,彻底粉碎了我那最后一线希望。
此时,我已过而立之年,同事们都劝我,终身大事该香港六合彩解决了,“高不成低不就”地再拖下去就成了“老大难”的大龄青年了。而且,香港六合彩惨遭爱情重挫,深知自己社会地位,我还有什么“高标准”罗。“薄薄酒,胜香港六合彩黄汤;粗布衫,胜无裳;丑妻贱妾胜无房。”连名震古今的大文豪苏东坡都能如此香港六合彩豁达,随遇而安,何况我这落魄之“等外公民”。我想通了,半开玩笑半认真地说:过香港六合彩日子嘛,女人是得要一个,只要差不多,谁愿要我就跟谁香港六合彩算了

Published in: Technology, Education
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,310
On SlideShare
0
From Embeds
0
Number of Embeds
15
Actions
Shares
0
Downloads
0
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

香港六合彩

  1. 1. DirectX10 簡介 Owen Wu [email_address] Nov 15, 2006
  2. 2. Overview <ul><li>DirectX 10 只能在 Vista 上執行 </li></ul><ul><ul><ul><li>… 需要 DX10 的顯示卡 ! </li></ul></ul></ul><ul><li>DirectX 10 會跟隨 Vista 一起發行 </li></ul><ul><ul><ul><li>目前計畫是 Q1 2007 </li></ul></ul></ul><ul><li>Vista and DX10 目前都有 beta version </li></ul><ul><ul><ul><li>Register with Microsoft (connect.microsoft.com) </li></ul></ul></ul><ul><li>DX10 SDK 已經含在最新的 DX9 SDK 中 </li></ul><ul><ul><ul><li>使用 REF device </li></ul></ul></ul>
  3. 3. Performance Improvements <ul><li>效能增進部分 </li></ul><ul><ul><ul><li>CPU 及 GPU 部分都有許多效能增進 ! </li></ul></ul></ul><ul><li>移除的部分 </li></ul><ul><ul><ul><li>不再支援 fixed-function </li></ul></ul></ul><ul><ul><ul><li>取消了一些不常用的 functions </li></ul></ul></ul><ul><li>所有廠牌的硬體功能完全相同 </li></ul><ul><ul><ul><li>沒有功能區別 , 只有能力區別 </li></ul></ul></ul><ul><ul><ul><li>不用再為不同硬體撰寫不同的 code path </li></ul></ul></ul><ul><ul><ul><li>引擎應該朝 scalable 方向設計 </li></ul></ul></ul>
  4. 4. DX9 的三大效能問題 <ul><li>Small batch </li></ul><ul><ul><ul><li>CPU bound, driver overhead </li></ul></ul></ul><ul><ul><ul><li>新的 API 設計 , 可以使用更少的 draw call. </li></ul></ul></ul><ul><li>State change </li></ul><ul><ul><ul><li>CPU bound, driver overhead </li></ul></ul></ul><ul><ul><ul><li>新的 State object, 可以減少更換 state 的負擔 . </li></ul></ul></ul><ul><ul><ul><li>全新 shader core 設計 , 可以減少 state 的更換 . </li></ul></ul></ul><ul><li>Constant </li></ul><ul><ul><ul><li>CPU bound, driver overhead </li></ul></ul></ul><ul><ul><ul><li>新的 constant buffer, 可以減少設定 constant 的負擔 . </li></ul></ul></ul>
  5. 5. New Pipeline <ul><li>Input assembler (IA) </li></ul><ul><li>Geometry shader (GS) </li></ul><ul><li>Stream out (SO) </li></ul><ul><li>Output merger (OM) </li></ul>Frame buffer IA RS OM PS VS GS VB IB Tex Const Tex Const Tex Const Render Target Depth/Stencil Stream Out
  6. 6. Small batch problem <ul><li>Geometry Instancing </li></ul><ul><ul><ul><li>一次 draw call 呼叫便可繪出多個物件 . </li></ul></ul></ul><ul><ul><ul><ul><li>每個物件可以有自己的不同屬性 . </li></ul></ul></ul></ul><ul><ul><ul><li>新的 shader core, 可以使用 texture arrays 在 shader 為每個 instance 中更換貼圖 . </li></ul></ul></ul><ul><ul><ul><li>DirectX 10 核心功能 </li></ul></ul></ul><ul><ul><ul><ul><li>ID3DDevice::IASetVertexBuffers() </li></ul></ul></ul></ul><ul><ul><ul><ul><li>ID3DDevice::DrawInstanced(…) </li></ul></ul></ul></ul><ul><ul><ul><ul><li>ID3DDevice::DrawIndexedInstanced(…) </li></ul></ul></ul></ul><ul><li>Render to Cubemap </li></ul><ul><ul><ul><li>一次 draw call 呼叫便可以繪出到六個面上 . </li></ul></ul></ul>
  7. 7. Small batch problem <ul><li>系統自動產生的值 </li></ul><ul><ul><ul><li>InstanceID (VS) </li></ul></ul></ul><ul><ul><ul><ul><li>An integer ID for the object instance being processed </li></ul></ul></ul></ul><ul><ul><ul><li>VertexID (VS) </li></ul></ul></ul><ul><ul><ul><ul><li>An integer ID for the vertex being processed </li></ul></ul></ul></ul><ul><ul><ul><li>PrimitiveID (GS, or PS if GS not bound) </li></ul></ul></ul><ul><ul><ul><ul><li>An integer ID for the primitive being process </li></ul></ul></ul></ul><ul><ul><ul><li>使用這些 id, 就可以在 shader 中更換材質 , 減少呼叫 draw call 的次數 . </li></ul></ul></ul>
  8. 8. Small batch problem Geometry Shader Pixel Shader
  9. 9. State change problem <ul><li>State object </li></ul><ul><ul><ul><li>State Objects 取代舊有的 renderstates . 存放在 video memory 中 , 大幅降低切換時的 CPU 負擔 </li></ul></ul></ul><ul><ul><ul><li>5 個新的 state objects: </li></ul></ul></ul><ul><ul><ul><ul><li>Input Layout Object </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Format, Offset, InstanceDataStepRate, … </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Rasterizer Object </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Cull Mode, Multisample Enable, Fill Mode, … </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>DepthStencil Object </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Depth Enable, Depth Func, Stencil Masks, … </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Blend Object </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>SrcBlend, DestBlend, BlendOp, … </li></ul></ul></ul></ul></ul><ul><ul><ul><ul><li>Sampler Object </li></ul></ul></ul></ul><ul><ul><ul><ul><ul><li>Filter Mode, MinLOD, MaxLOD,… </li></ul></ul></ul></ul></ul>
  10. 10. Constant problem <ul><li>更大的 constant 數目 </li></ul><ul><ul><ul><li>15 arrays of 4096 elements each </li></ul></ul></ul><ul><li>儲存在 VMEM 中 , 更新效率更高 . </li></ul><ul><li>不再是所有 shader 分享同一個 constant table. </li></ul><ul><li>一個 shader 最多可以同時使用 16 個 constant buffer! 但是可以 create 的數目沒有限制 . </li></ul><ul><li>類似 namespace 的宣告方式 </li></ul><ul><ul><li>cbuffer MyConstantBlock { float4x4 matMVP; float3 fLightPosition; } </li></ul></ul>
  11. 11. Constant problem <ul><li>可根據 constant 更新的頻率來配置不同的 constant buffers </li></ul><ul><li>Map()/Unmap() or UpdateSubResource() </li></ul>
  12. 12. 注意 – 不再有 half-texel 的位移 ! Top-left corner = (0,0) in Pixel Space
  13. 13. Resource <ul><ul><li>兩種 resource 類型 : </li></ul></ul><ul><ul><ul><li>Buffer </li></ul></ul></ul><ul><ul><ul><li>Texture </li></ul></ul></ul><ul><ul><li>所有的 resources 都只是記憶體陣列 </li></ul></ul><ul><ul><li>使用 “ views” 來將 resource 指派到不同的 shader 中 </li></ul></ul><ul><ul><li>使用” View” 可以重新定義 resource 資料 </li></ul></ul><ul><ul><ul><li>範例 :R32_TYPELESS->R32_FLOAT->R32_UINT </li></ul></ul></ul><ul><ul><li>資料可以 recirculation </li></ul></ul><ul><ul><li>VS, GS 以及 PS 皆可以讀取貼圖資料 </li></ul></ul>
  14. 14. Resource <ul><li>R esource view 可以定義 resource 如何被存取 </li></ul><ul><ul><ul><li>範例 1: 指定特定 MIP 階層做為 render target </li></ul></ul></ul><ul><ul><ul><li>範例 2: 3D texture 可以用 view 定義為 2D render target 貼圖陣列 </li></ul></ul></ul>
  15. 15. Texture Arrays <ul><li>每個陣列最多可以到 512 個單元 </li></ul><ul><ul><ul><li>最多可以 bind 128 個 textures/arrays 到 shader </li></ul></ul></ul><ul><li>可以使用動態 index 值來讀取貼圖陣列 </li></ul>
  16. 16. Geometry Shader <ul><ul><li>作用在 primitive 之上 </li></ul></ul><ul><ul><li>可以更改 topology </li></ul></ul><ul><ul><ul><li>產生新的 primitives </li></ul></ul></ul><ul><ul><ul><li>移除現有的 primitives </li></ul></ul></ul><ul><ul><li>可以讀取鄰近 primitives 的資訊 </li></ul></ul>Triangle with adjacency
  17. 17. Stream Out <ul><ul><li>可以輸出 VS 或 GS 的結果 </li></ul></ul><ul><ul><ul><li>可以輸出 0~1024 個 primitives </li></ul></ul></ul><ul><ul><ul><li>DrawAuto() 可以直接繪出產生的 primitives, 不需要知道產生的 primitives 數目 </li></ul></ul></ul><ul><ul><li>所有的 topologies 都會轉換成 list </li></ul></ul><ul><ul><li>Render to texture/VB 的應用 </li></ul></ul>
  18. 18. Shader Model 4.0 (SM 4) <ul><ul><li>單一 shader 核心應用在 VS, GS 及 PS </li></ul></ul><ul><ul><li>只支援 HLSL( 不再使用 assembly, 但可以在 debugging 時看到 asm ) </li></ul></ul>Memory Resources Input Data Output Data Shader Core Constant Buffers Textures Buffers Samplers
  19. 19. Shader Model 4.0 (SM 4) <ul><ul><li>不再支援 partial precision, 只會支援 IEEE FP32 </li></ul></ul><ul><ul><li>Full (x,y,z,w) screen space 座標可以做為 PS 的輸入值 </li></ul></ul><ul><ul><li>Textures 和 samplers 現在是各自獨立的 </li></ul></ul><ul><ul><li>支援 r ender target index </li></ul></ul>
  20. 20. SM4 HLSL Resource Access <ul><ul><li>Texture functions now templated </li></ul></ul><ul><ul><ul><ul><li><T>.GetDimensions(…) <T>.Sample(…) </li></ul></ul></ul></ul><ul><ul><ul><ul><li><T>.SampleCmp(…) <T>.SampleCmpLevelZero(…) </li></ul></ul></ul></ul><ul><ul><ul><ul><li><T>.SampleGrad(…) <T>.SampleLevel(…) </li></ul></ul></ul></ul><ul><ul><li>New function to load data from resources </li></ul></ul><ul><ul><ul><li><T>.Load(…) </li></ul></ul></ul><ul><ul><li>Template types: </li></ul></ul><ul><ul><ul><li>Buffer </li></ul></ul></ul><ul><ul><ul><li>Texture1D Texture1DArray </li></ul></ul></ul><ul><ul><ul><li>Texture2D Texture2DArray </li></ul></ul></ul><ul><ul><ul><li>Texture2DMS Texture2DMSArray </li></ul></ul></ul><ul><ul><ul><li>Texture3D </li></ul></ul></ul>
  21. 21. SM4 HLSL Flow Control Management <ul><ul><li>所有 shader 皆可以使用 Dynamic Flow Control </li></ul></ul><ul><ul><li>新增編譯指令來控制 flow control 的編碼 </li></ul></ul><ul><ul><ul><li>[branch] [flatten] [unroll(x)] [loop] </li></ul></ul></ul><ul><ul><li>範例 : [branch] if (dot(N, L)>0) {…} [unroll(8)] while (1) { … } </li></ul></ul>
  22. 22. Integer Shader Operations <ul><ul><li>支援 int, uint 資料型別 </li></ul></ul><ul><ul><li>整數以及 bitwise 運算元 </li></ul></ul><ul><ul><ul><li>+, -, *, /, min, max </li></ul></ul></ul><ul><ul><ul><li>not, and, or, xor, <<, >> </li></ul></ul></ul><ul><ul><li>可以用來設計資料的壓縮及解壓縮 </li></ul></ul>

×