3D编程:第十章 Project Setup and Window Initialization

第十章 Project Setup and Window Initialization

本章主要讲述建立一个渲染引擎所需要的基础知识。包括创建一个Visual Studio工程,实现游戏循环,并最终在显示器上显示一个窗口。

A New Beginning

本章正式开始讲解C++编程(本书中使用C++集中讲解DirectX API的章节),重要的是,不要期望能迅速学会渲染一些场景到屏幕上。简单地说,要学会这些需要一段时间。首先需要花时间建立一些基础框架,在多个工程中重用代码的时候就会体现出这么做的好处。如果你更喜欢使用本书配套网站中的现有代码,并跳过部分章节直接开始实际的渲染工作,也可以。但是,如果你对基础系统框架是如何开发的感兴趣,你就会觉得接下来几章的内容非常有用。

另外,学习这些章节的内容需要你已经熟悉C++编程和Visual Studio的使用,但并不需要熟练编写Windows应用程序。因此,一开始会讲解工程的设置,这样在后面的章节中你就能自己完成工程的设置。

Projet Setup

接下来几章要开发的渲染引擎分为两个Visual Studio工程,包括一个Library工程和一个Game工程。其中Library工程包含了用于任意数量的游戏或者渲染应用程序的常用代码。而Game工程则是包含了特定应用程序的代码。

Directory Structure

给所有的工程建立一个目录结构是一个好的建议。表10.1中列出了本书配套代码的目录结构。

表10.1 Project Directory Structure

Project Creation

要使用这种目录结构,先在build目录里面创建一个空的Visual Studio solution(Visual Studio解决方案)。然后在Solution Explorer anel中右键点击该solution,并在弹出菜单上选择Add-->New Project,会启动Add New Project Wizard(新建工程向导)。

如图10.1所示,选择Win32 Project模板,并填写工程的namt和location选项。

图10.1 The Visual Studio 2013 Add New Project Wizard. 选择OK就会启动Win32 Application Wizard(Win32应用程序设置向导)。对于Library工程,application type项选择Static Library,additional options中选择Empty Project(如图10.2所示)。在图10.2所示的设置中,precompiled headers被禁用了;如果你要用使用precompiled headers(用于提高编译速度),只需要勾选该选项。

图10.2 The Visual Studio 2013 Win32 Application Wizard.

再次执行同样的步骤创建一个Game project,但是在application type中选择Windows Applicaiton项。

Project Build Order

接下来,设置正确的编译顺序,在Solution Explorer panel中右键点击solution或者其中一个project,并在弹出菜单中选择Project Dependencies。应该把Library project设置为Game project的依赖项,这样配置就可以在编译Game project之前先编译Library project(如图10.3所示)。

时间: 2024-10-04 05:45:18

3D编程:第十章 Project Setup and Window Initialization的相关文章

J2ME 3D编程——第一个3D程序

编程|程序 J2ME 3D编程--第一个3D程序(附源代码) 更多文章请访问:http://blog.csdn.net/mailbomb 参考WTK2.2提供的demo,完成了第一个3D程序,虽然很简单,而且有些问题还不是很清楚,还是把代码共享出来和愿意学习J2ME 3D编程的朋友一起学习. 关于3D编程的资料,可以查阅我的blog. 关于代码的编译和运行说明如下: 1. 以下代码在J2ME WTK2.2下面编译通过. 2. 代码分为两个文件:First3DCanvas.java和First3D

J2ME 3D编程——第一个3D程序(附源代码)

参考WTK2.2提供的demo,完成了第一个3D程序,虽然很简单,而且有些问题还不是很清楚,还是把代码共享出来和愿意学习J2ME 3D编程的朋友一起学习. 关于3D编程的资料,可以查阅我的blog. 关于代码的编译和运行说明如下: 1.以下代码在J2ME WTK2.2下面编译通过. 2.代码分为两个文件:First3DCanvas.java和First3DMIDlet.java. 3.使用J2ME WTK2.2建立新的工程,主MIDlet类为:first3d. First3DMIDlet 4.将

android导入工程报错,fix project setup怎么解决

问题描述 android导入工程报错,fix project setup怎么解决 在导入项目后,出现很多地方cannot be resolved to a type,然后提示解决方法fix project setup 什么意思 解决方案 这个错误经常出现的. 有可能是工程中的jar包冲突了,找到冲突的jar包,用其中一个替换一下另一个: 也有可能是工程中用到了其他的框架,但是你没有导入,把框架的工程导入: 还有可能是jdk的版本不一样. 反正都试试吧,Android开发这类问题老是出现,万一都不

《OpenGL超级宝典(第5版)》——第1章,第1.4节3D编程的基本原则

1.4 3D编程的基本原则 现在,我们对实时3D的基本概念已经有了相当程度的认识.我们讨论了一些术语以及PC上的一些示例应用程序.那么,如何在自己的计算机上创建这样的图像呢?好吧,这正是本书剩余部分的任务所在.不过,读者还需要知道一些基础知识,这正是我们接下来将要讨论的. 1.4.1 并非工具包 OpenGL基本上是一种底层渲染API(应用程序接口).我们不能告诉它"在什么地方绘制什么"--我们需要自己动手,通过载入三角形,应用必要的变换和正确的纹理.着色器并在必要时应用混合模式来组合

3D手机游戏引擎Project Anarchy免费下载使用

&http://www.aliyun.com/zixun/aggregation/37954.html">nbsp;   免费3D手机游戏引擎Project Anarchy今日发布beta版,可以下载使用.Havok是英特尔的一家子公司,专注于中间件的开发,今天在GDC上透露其正在开发一个点对点的3D手机游戏引擎,这个引擎完全免费,今日已经发布beta版,可以下载使用. Anarchy Project是一个跨平台的引擎和工具包,是为手机游戏开发商量身打造的,Havok承诺此软件下载

手机上J2ME的3D编程-简单创建3D立方体(1)

编程|创建 参考文档:JSR-184 工具:Eclipse3.0+Eclipseme API:Mobile 3D Graphics API 模拟器:Sony Ericsson 分析: 在现实生活中,我们所看到的是一个3维系统.透过双眼,可以看到的是一个丰富多彩的世界.我们所用的照相机,能够拍出很多漂亮的图片.拍摄每张图片时,可以根据拍摄距离的远近可以调整所拍摄画面上的内容. 在虚拟的世界里,可以模拟真实世界.欲将虚拟世界展示出来,就要利用一个虚拟的照相机,将虚拟的世界拍摄出来. 在JSR-184

3D编程:The Direct3D 11 Graphics Pipeline

Direct3D 11图形管线 个人电脑一般都有两个处理器:CPU和GPU,你需要对每一个处理器编写代码.这两个部件拥有完全不同的架构和指令集.在图形编程中,你需要对两个处理器都都编写软件,对于CPU应用程序使用通用的语言,比如C++,对于GPU则使用HLSL.DirectX是系统之间的桥梁.大部分关于图形编程的文章都集中讲述CPU部分或者GPU部分,但是这两部分都是非常难懂的.本书两个部分都会讲解.         在DirectX里面我们主要学习Direct3D.简单来说,Direct3D是

3D编程:第一章 Introducing DirectX

DirectX是一组API的集合,用于在微软平台上,包括Windows,Windows Phone,Xbox 360,以及Xbox One,开发游戏或图形相关的应用程序.DirectX从1990年代中期发展至今,并处于现在图形开发的前沿.Direct3D是DirectX里面一套3D图形API,是这本书主要讲述的.DirectX也包含了2D图形,输入,音频,文字渲染和GPU编程的系统支持.本章概述了DirectX和DirectX 11的图形管线. 回顾历史 DirectX 1.0版本发布于1995

3D编程:Real-Time 3D Rendering with DirectX and HLSL

介绍 图形编程是视频游戏,电影和科学模拟仿真背后的魔法.你在计算机屏幕上看到的每一个爆炸,颗粒以及眩光都是使用视频卡处理的.此外,你看到的每一个像素点都是通过GPU渲染和图形编程人员软件实现的,因为现代操作系统使用GPU绘制.这是一个广泛的话题,但一直以来只属于少数领域.甚至有经验的软件开发人员,通常认为渲染是一门高深的艺术,充满了复杂的数学工具和深奥的工具.另外,现代图形学的快速发展使得图形编程变成了不断前进的目标,同时建立一个起点变得更加困难. 这就是这本书的目的.通过这本书,你会学习对实时