版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、Adam SchaefferMicrosoft CorporationSESSION CODE: WPH308Consistent sets of hardware capabilities defined by MicrosoftResolutionTouch InputCPU / GPURAMHardware keyboard is optionalLow level controlStraight to the metalRaw performance tuningHigh level abstractionRely on compiler and runtimeDeveloper pr
2、oductivityPowerful and expressiveType safety reduces hard-to-track-down bugsReflectionInitializer syntaxGreat tooling (IntelliSense)Similar enough to C that learning and porting are easyBlazingly fast compilesC#Usually within a few percent of native performanceAwesome generational garbage collection
3、Performance shootout: Raymond Chen vs. Rico Marianihttp:/ delta between managed and native.NET Compact FrameworkSimplistic mark-and-sweep garbage collectionXbox is not a general purpose computerUnforgiving in-order CPU architectureRequires custom VMX instructions for optimal math perfSecurity archit
4、ecture poses challenges for jitted codeIn between Windows and Xbox 360.NET Compact FrameworkKeep an eye on garbage collection!ARMv7 CPUMore forgiving toward jitted codeARM jitter is more mature than PPCInstance methodInterfaceDelegate / eventReflectionVirtual methodC+ allows independent choice of.NE
5、T types dictate their allocation and usage semanticsData typeThe memory in which a type lives (placement new)How a type instance is referenced (T, T*, T&, const T&)Value typesint, bool, struct, Vector3Reference typesclass, array, string, delegate, boxed value typesOft-repeated wisdomValue ty
6、pes live on the stackReference types live on the heapValue types live wherever they are declaredReference types have two piecesMemory allocated from the heapA pointer to this heap memoryThat is subtly incorrectBy default, prefer class over structureUse struct for things that areSmall (= 16 bytes)Sho
7、rt livedPass large structures by referenceMatrix a, b, c;c = Matrix.Multiply(a, b); / copies 192 bytes!Matrix.Multiply(ref a, ref b, out c);C+.NETAllocateInitially fast, becoming slower as fragmentation increasesVery fast, apart from periodic garbage collectionsFreeFastInstantaneousFragmentationIncr
8、eases over timeNoneCache coherencyRequires custom allocatorsThings allocated close in time are also close in physical locationGarbage collection is not optionalCant have type safety without automatic memory managementTriggered per megabyte of allocation1Starts with root references (stack variables,
9、statics)2Recursively follows all references to see what other objects can be reached3Anything we didnt reach must be garbage4Compacts the heap, sliding live objects down to fill holes5Frameworks designed for performanceFrameworks designed for performanceMake it run Less OftenIf you never allocate, G
10、C will never runMake it Finish QuicklyCollection time is proportional to how many object references must be traversedUse object poolsSimple heap = fast collectionUse value types and integer handlesExplicitly forces a garbage collectionUse wisely to give yourself more headroomAfter loadingDuring paus
11、es in gameplayDont call every frame!Beware of boxingstring vs. StringBuilderUse WeakReference to track GC frequencyhttp:/ CLR Profiler on WindowsSee MIX10 talk: “Development and Debugging Tools for Windows Phone 7 Series”Use .NET Reflector to peek behind the curtainhttp:/www.red- hardware accelerate
12、d 2D sprite drawingBasicEffectSkinnedEffectEnvironmentMapEffectAlphaTestEffectDualTextureEffect0-3 directional lightsBlinn-Phong shadingOptional textureOptional fogOptional vertex colorBasicEffectVertex CostPixel CostNo lighting51One vertex light401Three vertex lights601Three pixel lights1850+ Textu
13、re+1+2+ Fog+4+2DualTextureEffectFor lightmaps, detail textures, decalsBlends two texturesSeparate texture coordinatesModulate 2X combine mode (A*B*2)Good visuals at low pixel costVertex CostPixel CostTwo Textures76+ Fog+4+2For billboards and impostersAdds alpha test operations (pixel kill)Standard b
14、lending is free with all effectsOnly need alpha test if you want to disable depth/stencil writesAlphaTestEffectVertex CostPixel Cost, =, 66=, !=610+ Fog+4+2SkinnedEffectFor animated models and instancingGame code animates bones on CPUVertex skinning performed by GPUUp to 72 bonesOne, two, or four we
15、ights per vertexVertex CostPixel CostOne vertex light554Three vertex lights754Three pixel lights3351+ Two bones+7+0+ Four bones+13+0+ Fog+0+2EnvironmentMapEffectOooh, shiny!Diffuse texture + cube environment mapCheap way to fake many complex lightsFresnel term simulates behavior when light reaches a
16、 surface and some reflects, some penetratesVertex CostPixel CostOne light326Three lights366+ Fresnel+7+0+ Specular+0+2+ Fog+0+2FramerateNumberof PixelsPixel CostFramerate 30 hz refresh rate No point updating faster than the display! Game.TargetElapsedTime = TimeSpan.FromSeconds(1f / 30);Pixel Cost P
17、refer cheaper effects Minimize overdrawMany known algorithms:Distance, frustum, BSP, sort front to backImplement “overdraw x-ray mode” Draw untextured with additive blendingBrighter areas indicate overdrawNumberof Pixels 800 x480 is 25% more pixels than Xbox 1Great for textToo many pixels for intens
18、ive games800 x480 = 384,000 pixels600 x360 = 216,000 pixels (56%) Dedicated hardware scaler Does not consume any GPU Higher quality than bilinear upsamplingAvoidPreferRenderTargetUsage.PreserveContentsRenderTargetUsage.DiscardContentsdevice.BlendState = new BlendState .;/ At startupstatic BlendState myState = new BlendState .;/ Per frameDevice.BlendState = myState;VertexBuffer.SetData(.)device.DrawUserPrimitives(.);/ orDynamicVertexBuffer.SetData(., SetDataOptions.NoOverwrite);Great
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025屆湖南省汨羅市第二中學(xué)物理高二上期末達(dá)標(biāo)檢測(cè)模擬試題含解析
- 2025屆廣東省信宜市高一物理第一學(xué)期期中統(tǒng)考試題含解析
- 山東省陽(yáng)谷縣第二中學(xué)2025屆高二物理第一學(xué)期期中檢測(cè)試題含解析
- 2025屆吉林省公主嶺市范家屯鎮(zhèn)一中高一物理第一學(xué)期期末檢測(cè)模擬試題含解析
- 2025屆遼寧省鳳城市通遠(yuǎn)堡高級(jí)中學(xué)物理高二上期中綜合測(cè)試試題含解析
- 2025屆寧夏回族自治區(qū)銀川市興慶區(qū)一中高一物理第一學(xué)期期末統(tǒng)考試題含解析
- 上海市浦東新區(qū)南匯中學(xué)2025屆高二物理第一學(xué)期期末學(xué)業(yè)水平測(cè)試模擬試題含解析
- 2025屆上海市南模中學(xué)高三物理第一學(xué)期期末調(diào)研模擬試題含解析
- 2025屆河南省九師聯(lián)盟商開(kāi)大聯(lián)考物理高一第一學(xué)期期中調(diào)研試題含解析
- 安徽省合肥市第三十五中學(xué)2025屆物理高二第一學(xué)期期中質(zhì)量跟蹤監(jiān)視模擬試題含解析
- 安全評(píng)價(jià)通則AQ8001-2007
- (2024年)反壟斷法及反不正當(dāng)競(jìng)爭(zhēng)法課件
- 九年級(jí)英語(yǔ)《Unit 13 Were trying to save the earth!》教學(xué)設(shè)計(jì)
- 《風(fēng)電場(chǎng)項(xiàng)目經(jīng)濟(jì)評(píng)價(jià)規(guī)范》(NB-T 31085-2016)
- 最簡(jiǎn)單模具合同
- 工業(yè)物聯(lián)網(wǎng)理論知識(shí)試題
- 激光器技術(shù)發(fā)展與應(yīng)用前景
- 中學(xué)物理校本課程
- 居士念佛團(tuán)規(guī)章制度
- 3D打印技術(shù)與應(yīng)用
- 餐飲原料的采購(gòu)與采購(gòu)課件
評(píng)論
0/150
提交評(píng)論