Game Development with Directx 9

Total Page:16

File Type:pdf, Size:1020Kb

Game Development with Directx 9 Game Development with DirectX 9 Contents Contents...................................................................................................................................... 1 Introduction ................................................................................................................................ 5 Prerequisites ............................................................................................................................... 5 Required tools/downloads.......................................................................................................... 5 Conventions................................................................................................................................ 5 D3DX Library ............................................................................................................................ 5 Introduction to DirectX 9 ........................................................................................................... 6 Direct3D..................................................................................................................................... 6 1. Direct3D Initialization........................................................................................................ 6 1.1 Overview ...................................................................................................................... 6 1.1.1 REF Device ........................................................................................................... 7 1.1.2 D3DDEVTYPE..................................................................................................... 7 1.1.3 COM...................................................................................................................... 7 1.2 Preliminaries................................................................................................................. 7 1.2.1 Surfaces ................................................................................................................. 7 1.2.2 Multisampling ....................................................................................................... 8 1.2.3 Pixel Formats......................................................................................................... 9 1.2.4 Memory Pools ....................................................................................................... 9 1.2.5 Swap Chain ......................................................................................................... 10 1.2.6 Depth Buffers ...................................................................................................... 10 1.2.7 Vertex Processing................................................................................................ 10 1.2.8 Device Capabilities ............................................................................................. 10 1.3 Initializing Direct3D .................................................................................................. 11 1.3.1 Acquire an IDirect3D9 interface ......................................................................... 11 1.3.2 Check the device capabilities .............................................................................. 11 1.3.3 Initialize an instance of the D3DPRESENT_PARAMETERS structure ............ 11 1.3.4 Create the IDirect3DDevice9 object ................................................................... 12 1.4 Example Program, D3D Init....................................................................................... 12 1.4.1 Framework .......................................................................................................... 12 1.4.2 d3dUtility.h/cpp................................................................................................... 13 1.4.3 D3D Init Implementation .................................................................................... 14 Display ..................................................................................................................... 14 IDirect3DDevice9:Clear........................................................................................... 15 WndProc................................................................................................................... 15 WinMain................................................................................................................... 15 1.4.4 Compiling with Visual C++ 6.0 .......................................................................... 16 Settings..................................................................................................................... 16 New Project.............................................................................................................. 16 Project Settings......................................................................................................... 17 Adding the source files............................................................................................. 17 Compiling................................................................................................................. 17 1.5 The CreateDevice example ........................................................................................ 18 1.5.1 Differences .......................................................................................................... 18 1.6 Summary .................................................................................................................... 18 2. The Rendering Pipeline.................................................................................................... 19 1 2.1 Model Representation ................................................................................................ 19 2.1.1 Vertex Formats.................................................................................................... 19 2.1.2 Triangles.............................................................................................................. 20 2.1.3 Indices ................................................................................................................. 20 2.2 The Virtual Camera.................................................................................................... 21 2.3 The Rendering pipeline .............................................................................................. 21 2.3.1 Local Space ......................................................................................................... 22 2.3.2 World Space ........................................................................................................ 22 2.3.3 View Space.......................................................................................................... 22 2.3.4 Backface Culling................................................................................................. 23 2.3.5 Clipping............................................................................................................... 24 2.3.6 Projection ............................................................................................................ 25 2.3.7 Viewport Transform............................................................................................ 25 2.3.8 Rasterization........................................................................................................ 26 2.4 Summary .................................................................................................................... 26 3. Drawing............................................................................................................................ 27 3.1 Vertex/Index Buffers.................................................................................................. 27 3.1.1 Creating a Vertex and Index Buffer .................................................................... 27 3.1.2 Accessing a buffer’s memory.............................................................................. 28 3.2 Render States.............................................................................................................. 29 3.3 Drawing preparations ................................................................................................. 29 3.4 Drawing with Vertex/Index Buffers........................................................................... 30 3.4.1 IDirect3DDevice9::DrawPrimitive ..................................................................... 30 3.4.2 IDirect3DDevice9::DrawIndexedPrimitive ........................................................ 30 3.4.3 Begin/End Scene ................................................................................................. 31 3.5 D3DX Geometry Objects........................................................................................... 31 3.6 Examples .................................................................................................................... 32 3.6.1 Triangle ............................................................................................................... 32 3.6.2 Cube .................................................................................................................... 32 3.6.3 Teapot and D3DXCreate..................................................................................... 33 3.7 Summary ...................................................................................................................
Recommended publications
  • Interaction Between Web Browsers and Script Engines
    IT 12 058 Examensarbete 45 hp November 2012 Interaction between web browsers and script engines Xiaoyu Zhuang Institutionen för informationsteknologi Department of Information Technology Abstract Interaction between web browser and the script engine Xiaoyu Zhuang Teknisk- naturvetenskaplig fakultet UTH-enheten Web browser plays an important part of internet experience and JavaScript is the most popular programming language as a client side script to build an active and Besöksadress: advance end user experience. The script engine which executes JavaScript needs to Ångströmlaboratoriet Lägerhyddsvägen 1 interact with web browser to get access to its DOM elements and other host objects. Hus 4, Plan 0 Browser from host side needs to initialize the script engine and dispatch script source code to the engine side. Postadress: This thesis studies the interaction between the script engine and its host browser. Box 536 751 21 Uppsala The shell where the engine address to make calls towards outside is called hosting layer. This report mainly discussed what operations could appear in this layer and Telefon: designed testing cases to validate if the browser is robust and reliable regarding 018 – 471 30 03 hosting operations. Telefax: 018 – 471 30 00 Hemsida: http://www.teknat.uu.se/student Handledare: Elena Boris Ämnesgranskare: Justin Pearson Examinator: Lisa Kaati IT 12 058 Tryckt av: Reprocentralen ITC Contents 1. Introduction................................................................................................................................
    [Show full text]
  • Windows 7 Operating Guide
    Welcome to Windows 7 1 1 You told us what you wanted. We listened. This Windows® 7 Product Guide highlights the new and improved features that will help deliver the one thing you said you wanted the most: Your PC, simplified. 3 3 Contents INTRODUCTION TO WINDOWS 7 6 DESIGNING WINDOWS 7 8 Market Trends that Inspired Windows 7 9 WINDOWS 7 EDITIONS 10 Windows 7 Starter 11 Windows 7 Home Basic 11 Windows 7 Home Premium 12 Windows 7 Professional 12 Windows 7 Enterprise / Windows 7 Ultimate 13 Windows Anytime Upgrade 14 Microsoft Desktop Optimization Pack 14 Windows 7 Editions Comparison 15 GETTING STARTED WITH WINDOWS 7 16 Upgrading a PC to Windows 7 16 WHAT’S NEW IN WINDOWS 7 20 Top Features for You 20 Top Features for IT Professionals 22 Application and Device Compatibility 23 WINDOWS 7 FOR YOU 24 WINDOWS 7 FOR YOU: SIMPLIFIES EVERYDAY TASKS 28 Simple to Navigate 28 Easier to Find Things 35 Easy to Browse the Web 38 Easy to Connect PCs and Manage Devices 41 Easy to Communicate and Share 47 WINDOWS 7 FOR YOU: WORKS THE WAY YOU WANT 50 Speed, Reliability, and Responsiveness 50 More Secure 55 Compatible with You 62 Better Troubleshooting and Problem Solving 66 WINDOWS 7 FOR YOU: MAKES NEW THINGS POSSIBLE 70 Media the Way You Want It 70 Work Anywhere 81 New Ways to Engage 84 INTRODUCTION TO WINDOWS 7 6 WINDOWS 7 FOR IT PROFESSIONALS 88 DESIGNING WINDOWS 7 8 WINDOWS 7 FOR IT PROFESSIONALS: Market Trends that Inspired Windows 7 9 MAKE PEOPLE PRODUCTIVE ANYWHERE 92 WINDOWS 7 EDITIONS 10 Remove Barriers to Information 92 Windows 7 Starter 11 Access
    [Show full text]
  • Wireless GPON ONT
    GPON 4 Ethernet Ports | 1 PON | VoIP | 802.11n | 802.11ac GRG-4260us Wireless GPON ONT The GRG-4260us is an advanced GPON ONT gateway with 1 GPON WAN port, 4 Gigabit Ethernet LAN ports, 2 FXS ports, 1 USB2.0 Host and IEEE802.11 series Wi-Fi. The Wi-Fi not only provides an 802.11n 2T2R 2.4GHz Band which is backward compatible with 802.11g/b but also supports high performance 802.11ac with 3T3R design at 5GHz band. GRG-4260us provides powerful functions which telephone companies have applied on the xDSL CPE IAD device, and remote management utilities (such as TR-069) for network management and maintenance. FEATURES .UPnP, IPv6 compliant .WPA and 802.1x/ WPS 2.0/ Radius Client .PhyR and G.INP .NAT/PAT .Supports TR-069/TR-098/TR-181i2 .IGMP Proxy/ Fast Leave/ Snooping/ Proxy .Configuration backup and restoration .DHCP Server/Client .Web-based management (HTTPS/HTTP) .Embedded SNMP agent .Supports remote administration, automatic .IP/MAC address filtering firmware upgrade and configuration .Static route/ RIP/ RIP v2 routing functions .Integrated 802.11ac AP (backward compatible .DNS Proxy/Relay with 802.11a/n) www.comtrend.com GRG-4260us 4 Ethernet Ports | 1 PON | VoIP | 802.11n | 802.11ac SPECIFICATIONS Hardware Networking Protocols .PPPoE pass-through, Multiple PPPoE sessions on single WAN .GPON X 1 Bi-directional Optical (1310nm/1490nm) .RJ-45 X 4 for LAN, (10/100/1000 Base T) interface .RJ-11 X 2 for FXS (optional) .PPPoE filtering of non-PPPoE packets between WAN and LAN .USB2.0 host X 1 .Transparent bridging between all LAN and WAN interfaces
    [Show full text]
  • Run-Commands-Windows-10.Pdf
    Run Commands Windows 10 by Bettertechtips.com Command Action Command Action documents Open Documents Folder devicepairingwizard Device Pairing Wizard videos Open Videos Folder msdt Diagnostics Troubleshooting Wizard downloads Open Downloads Folder tabcal Digitizer Calibration Tool favorites Open Favorites Folder dxdiag DirectX Diagnostic Tool recent Open Recent Folder cleanmgr Disk Cleanup pictures Open Pictures Folder dfrgui Optimie Drive devicepairingwizard Add a new Device diskmgmt.msc Disk Management winver About Windows dialog dpiscaling Display Setting hdwwiz Add Hardware Wizard dccw Display Color Calibration netplwiz User Accounts verifier Driver Verifier Manager azman.msc Authorization Manager utilman Ease of Access Center sdclt Backup and Restore rekeywiz Encryption File System Wizard fsquirt fsquirt eventvwr.msc Event Viewer calc Calculator fxscover Fax Cover Page Editor certmgr.msc Certificates sigverif File Signature Verification systempropertiesperformance Performance Options joy.cpl Game Controllers printui Printer User Interface iexpress IExpress Wizard charmap Character Map iexplore Internet Explorer cttune ClearType text Tuner inetcpl.cpl Internet Properties colorcpl Color Management iscsicpl iSCSI Initiator Configuration Tool cmd Command Prompt lpksetup Language Pack Installer comexp.msc Component Services gpedit.msc Local Group Policy Editor compmgmt.msc Computer Management secpol.msc Local Security Policy: displayswitch Connect to a Projector lusrmgr.msc Local Users and Groups control Control Panel magnify Magnifier
    [Show full text]
  • Using the Component Object Model Interface
    MQSeries for Windows NT V5R1 IBM Using the Component Object Model Interface SC34-5387-01 MQSeries for Windows NT V5R1 IBM Using the Component Object Model Interface SC34-5387-01 Note! Before using this information and the product it supports, be sure to read the general information under Appendix B, “Notices” on page 151. Second edition (April 1999) This edition applies to MQSeries for Windows NT V5.1 and to any subsequent releases and modifications until otherwise indicated in new editions. Copyright International Business Machines Corporation 1997,1999. All rights reserved. US Government Users Restricted Rights – Use, duplication or disclosure restricted by GSA ADP Schedule Contract with IBM Corp. Contents Contents About this book ..................................... v Who this book is for ................................... v MQSeries publications . vi MQSeries cross-platform publications ....................... vi MQSeries platform-specific publications ...................... ix MQSeries Level 1 product publications ....................... x Softcopy books . x MQSeries information available on the Internet .................. xii Where to find more information about ActiveX ................... xii Summary of changes ................................. xiii Changes for this edition ................................ xiii Chapter 1. Introduction . 1 MQSeries Automation Classes for ActiveX overview ................ 1 Chapter 2. Designing and programming using MQSeries Automation Classes for ActiveX .................................. 3 Designing
    [Show full text]
  • Programming Graphics Hardware Overview of the Tutorial: Afternoon
    Tutorial 5 ProgrammingProgramming GraphicsGraphics HardwareHardware Randy Fernando, Mark Harris, Matthias Wloka, Cyril Zeller Overview of the Tutorial: Morning 8:30 Introduction to the Hardware Graphics Pipeline Cyril Zeller 9:30 Controlling the GPU from the CPU: the 3D API Cyril Zeller 10:15 Break 10:45 Programming the GPU: High-level Shading Languages Randy Fernando 12:00 Lunch Tutorial 5: Programming Graphics Hardware Overview of the Tutorial: Afternoon 12:00 Lunch 14:00 Optimizing the Graphics Pipeline Matthias Wloka 14:45 Advanced Rendering Techniques Matthias Wloka 15:45 Break 16:15 General-Purpose Computation Using Graphics Hardware Mark Harris 17:30 End Tutorial 5: Programming Graphics Hardware Tutorial 5: Programming Graphics Hardware IntroductionIntroduction toto thethe HardwareHardware GraphicsGraphics PipelinePipeline Cyril Zeller Overview Concepts: Real-time rendering Hardware graphics pipeline Evolution of the PC hardware graphics pipeline: 1995-1998: Texture mapping and z-buffer 1998: Multitexturing 1999-2000: Transform and lighting 2001: Programmable vertex shader 2002-2003: Programmable pixel shader 2004: Shader model 3.0 and 64-bit color support PC graphics software architecture Performance numbers Tutorial 5: Programming Graphics Hardware Real-Time Rendering Graphics hardware enables real-time rendering Real-time means display rate at more than 10 images per second 3D Scene = Image = Collection of Array of pixels 3D primitives (triangles, lines, points) Tutorial 5: Programming Graphics Hardware Hardware Graphics Pipeline
    [Show full text]
  • [MS-ERREF]: Windows Error Codes
    [MS-ERREF]: Windows Error Codes Intellectual Property Rights Notice for Open Specifications Documentation . Technical Documentation. Microsoft publishes Open Specifications documentation for protocols, file formats, languages, standards as well as overviews of the interaction among each of these technologies. Copyrights. This documentation is covered by Microsoft copyrights. Regardless of any other terms that are contained in the terms of use for the Microsoft website that hosts this documentation, you may make copies of it in order to develop implementations of the technologies described in the Open Specifications and may distribute portions of it in your implementations using these technologies or your documentation as necessary to properly document the implementation. You may also distribute in your implementation, with or without modification, any schema, IDL's, or code samples that are included in the documentation. This permission also applies to any documents that are referenced in the Open Specifications. No Trade Secrets. Microsoft does not claim any trade secret rights in this documentation. Patents. Microsoft has patents that may cover your implementations of the technologies described in the Open Specifications. Neither this notice nor Microsoft's delivery of the documentation grants any licenses under those or any other Microsoft patents. However, a given Open Specification may be covered by Microsoft Open Specification Promise or the Community Promise. If you would prefer a written license, or if the technologies described in the Open Specifications are not covered by the Open Specifications Promise or Community Promise, as applicable, patent licenses are available by contacting [email protected]. Trademarks. The names of companies and products contained in this documentation may be covered by trademarks or similar intellectual property rights.
    [Show full text]
  • Directx™ 12 Case Studies
    DirectX™ 12 Case Studies Holger Gruen Senior DevTech Engineer, 3/1/2017 Agenda •Introduction •DX12 in The Division from Massive Entertainment •DX12 in Anvil Next Engine from Ubisoft •DX12 in Hitman from IO Interactive •DX12 in 'Game AAA' •AfterMath Preview •Nsight VSE & DirectX12 Games •Q&A www.gameworks.nvidia.com 2 Agenda •Introduction •DX12 in The Division from Massive Entertainment •DX12 in Anvil Next Engine from Ubisoft •DX12 in Hitman from IO Interactive •DX12 in 'Game AAA' •AfterMath Preview •Nsight VSE & DirectX12 Games •Q&A www.gameworks.nvidia.com 3 Introduction •DirectX 12 is here to stay • Games do now support DX12 & many engines are transitioning to DX12 •DirectX 12 makes 3D programming more complex • see DX12 Do’s & Don’ts in developer section on NVIDIA.com •Goal for this talk is to … • Hear what talented developers have done to cope with DX12 • See what developers want to share when asked to describe their DX12 story • Gain insights for your own DX11 to DX12 transition www.gameworks.nvidia.com 4 Thanks & Credits •Carl Johan Lejdfors Technical Director & Daniel Wesslen Render Architect - Massive •Jonas Meyer Lead Render Programmer & Anders Wang Kristensen Render Programmer - Io-Interactive •Tiago Rodrigues 3D Programmer - Ubisoft Montreal www.gameworks.nvidia.com 5 Before we really start … •Things we’ll be hearing about a lot • Memory Managment • Barriers • Pipeline State Objects • Root Signature and Shader Bindings • Multiple Queues • Multi threading If you get a chance check out the DX12 presentation from Monday’s ‘The
    [Show full text]
  • Security Policy Page 1 of 20
    Security Policy Page 1 of 20 Security Policy This security policy contains data to configure services and network security based on the server’s role, as well as data to configure registry and auditing settings. Server: VENGWIN207 Services Service Name Startup Mode Description Issues, manages, and removes X.509 certificates for such applications such as Active Directory Certificate S/MIME and SSL. If the service is stopped, Disabled Services certificates will not be issued. If this service is disabled, any services that explicitly depend on it will fail to start. AD DS Domain Controller service. If this service is stopped, users will be unable to log Active Directory Domain Services Disabled on to the network. If this service is disabled, any services that explicitly depend on it will fail to start. AD FS Web Agent Authentication The AD FS Web Agent Authentication Service Disabled Service validates incoming tokens and cookies. Adobe Acrobat Updater keeps your Adobe Adobe Acrobat Update Service Automatic software up to date. Sends logging messages to the logging database when logging is enabled for the Active Directory Rights Management Services role. If this service is disabled or stopped AdRmsLoggingService Disabled when logging is enabled, logging messages will be stored in local message queues and sent to the logging database when the service is started. Processes application compatibility cache Application Experience Disabled requests for applications as they are launched Provides administrative services for IIS, for example configuration history and Application Pool account mapping. If this Application Host Helper Service Disabled service is stopped, configuration history and locking down files or directories with Application Pool specific Access Control Entries will not work.
    [Show full text]
  • Improving Shadows and Reflections Via the Stencil Buffer
    Improving Shadows and Reflections via the Stencil Buffer Mark J. Kilgard * NVIDIA Corporation “Slap textures on polygons, throw them at the screen, and let the depth buffer sort it out.” For too many game developers, the above statement sums up their approach to 3D hardware- acceleration. A game programmer might turn on some fog and maybe throw in some transparency, but that’s often the limit. The question is whether that is enough anymore for a game to stand out visually from the crowd. Now everybody’s using 3D hardware-acceleration, and everybody’s slinging textured polygons around, and, frankly, as a result, most 3D games look more or less the same. Sure there are differences in game play, network interaction, artwork, sound track, etc., etc., but we all know that the “big differentiator” for computer gaming, today and tomorrow, is the look. The problem is that with everyone resorting to hardware rendering, most games look fairly consistent, too consistent. You know exactly the textured polygon look that I’m talking about. Instead of settling for 3D hardware doing nothing more than slinging textured polygons, I argue that cutting-edge game developers must embrace new hardware functionality to achieve visual effects beyond what everybody gets today from your basic textured and depth-buffered polygons. Two effects that can definitely set games apart from the crowd are better quality shadows and reflections. While some games today incorporate shadows and reflections to a limited extent, the common techniques are fairly crude. Reflections in today’s games are mostly limited to “infinite extent” ground planes or ground planes bounded by walls.
    [Show full text]
  • The Component Object Model Specification Version 0.9 October 24, 1995
    http://scottge.wordpress.com The Component Object Model Specification Version 0.9 October 24, 1995 This document contains the specification to the Component Object Model (COM), an architecture and supporting infrastructure for building, using, and evolving component software in a robust manner. This specification contains the standard APIs supported by the COM Library, the standard suites of interfaces supported or used by software written in a COM environment, along with the network protocols used by COM in support of distributed computing. This specification is still in draft form, and thus subject to change. Note: This document is an early release of the final specification. It is meant to specify and accompany software that is still in development. Some of the information in this documentation may be inaccurate or may not be an accurate representation of the functionality of the final specification or software. Microsoft assumes no responsibility for any damages that might occur either directly or indirectly from these inaccuracies. Microsoft may have trademarks, copyrights, patents or pending patent applications, or other intellectual property rights covering subject matter in this document. The furnishing of this document does not give you a license to these trademarks, copyrights, patents, or other intellectual property rights. Copyright ? 1992-95 Microsoft Corporation. All Rights Reserved The Component Object Model Specification The Component Object Model The Component Object Model Specification Draft Version 0.9, October 24, 1995 Microsoft Corporation and Digital Equipment Corporation Copyright ? 1992-95 Microsoft Corporation. Microsoft does not make any representation or warranty regarding the Specification or any product or item developed based on the Specification.
    [Show full text]
  • Programming with Windows Forms
    A P P E N D I X A ■ ■ ■ Programming with Windows Forms Since the release of the .NET platform (circa 2001), the base class libraries have included a particular API named Windows Forms, represented primarily by the System.Windows.Forms.dll assembly. The Windows Forms toolkit provides the types necessary to build desktop graphical user interfaces (GUIs), create custom controls, manage resources (e.g., string tables and icons), and perform other desktop- centric programming tasks. In addition, a separate API named GDI+ (represented by the System.Drawing.dll assembly) provides additional types that allow programmers to generate 2D graphics, interact with networked printers, and manipulate image data. The Windows Forms (and GDI+) APIs remain alive and well within the .NET 4.0 platform, and they will exist within the base class library for quite some time (arguably forever). However, Microsoft has shipped a brand new GUI toolkit called Windows Presentation Foundation (WPF) since the release of .NET 3.0. As you saw in Chapters 27-31, WPF provides a massive amount of horsepower that you can use to build bleeding-edge user interfaces, and it has become the preferred desktop API for today’s .NET graphical user interfaces. The point of this appendix, however, is to provide a tour of the traditional Windows Forms API. One reason it is helpful to understand the original programming model: you can find many existing Windows Forms applications out there that will need to be maintained for some time to come. Also, many desktop GUIs simply might not require the horsepower offered by WPF.
    [Show full text]