自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(104)
  • 资源 (2)
  • 收藏
  • 关注

转载 有关View Frustum culling的一些算法和文章

这两天看了一下view frustum culling的一些paper和文章,并且在自己的地形程序中实现该部分功能,有关VFC的一些资料整理:http://www.flipcode.com/articles/article_frustumculling.shtml  入门级的 view frustum culling介绍,helpfulMark Morleys frustum culling t

2009-09-28 00:32:00 1123

原创 c标准库函数

本文包括大部分C标准库函数,但没有列出一些用途有限的函数以及某些可以简单的从其他函数合成的函数,也没有包含多字节和本地化函数。标准库中的各个函数、类型以及宏分别在以下标准头文件中说明:  1 输入与输出头文件定义了用于输入和输出的函数、类型和宏。最重要的类型是用于声明文件指针的FILE。另外两个常用的类型是size_t和fpos_t,size_t是由运算

2009-09-24 22:15:00 1462

原创 DirectX考点归纳

Direct3D游戏编程入门教程第2版 考点归纳试卷的考题类型有:单选题、多选题、名词解释/简答题、分析题等。第01章 Direct3D/DirectX历史DirectX8有哪些新特性:1 Point spite(点精灵)2 3D体纹理3 对direct3DX库的改进4 N-patches5 顶点shader和像素shaderPoint spite可以生成:火花、爆炸、雨、雪等效果。3D体纹理可以

2009-09-24 20:10:00 4685 1

原创 透析回调函数

概括起来,回调机制包括两部分:服务执行者和服务方式制定者。             1. 服务执行者先制定服务规范;             2.服务方式制定者然后按照规范制定服务方式;             3.然后执行者按照这个方式提供服务。       回调函数的方式是把函数指针的作为参数传递进去,所以规范就是约定函数的参数类型,个数。这篇文章如下:        调用(calling)机

2009-09-14 22:10:00 629

原创 BSP TREE FREQUENTLY ASKED QUESTIONS

BSP TREE FREQUENTLY ASKED QUESTIONS (FAQ) _________________________________________________________________ Questions 1. About this document 2. Ack

2009-09-04 01:26:00 1308

转载 RTTI、虚函数和虚基类的开销分析及使用指导

“在正确的场合使用恰当的特性” 对称职的C++程序员来说是一个基本标准。想要做到这点,首先要了解语言中每个特性的实现方式及其开销。本文主要讨论相对于传统 C 而言,对效率有影响的几个C++新特性。相对于传统的 C 语言,C++ 引入的额外开销体现在以下两个方面:编译时开销模板、类层次结构、强类型检查等新特性,以及大量使用了这些新特性的 STL 标准库都增加了编译器负担。

2009-08-27 19:33:00 780

原创 面试4(单链表)

 参加了这么多次面试,如果考数据结构的话,觉得最容易考的就是单链表与排序了,当然好像栈也考的多,今天先看看单链表。多亏去年看严蔚敏的数据结构很是下了功夫,所以数据结构现在还是蛮有信心的。单链表//线性表的单链表存储结构typedef struct LNode{    ElemType data;    struct LNode *next;}LNode,*LinkList;//从表尾到

2009-08-25 23:07:00 724

原创 面试3(static)

 C++的static有两种用法:面向过程程序设计中的static和面向对象程序设计中的static。前者应用于普通变量和函数,不涉及类;后者主要说明static在类中的作用。一、面向过程设计中的static1、静态全局变量在全局变量前,加上关键字static,该变量就被定义成为一个静态全局变量。我们先举一个静态全局变量的例子,如下: //Example 1#include voi

2009-08-25 23:04:00 450

原创 面试3(const、#define )

问题1:const与#define相比有什么不同?C++可以用const定义常量,也可以用#define定义常量,但是前者比后者有更多的有点:1、const常量有数据类型,而宏常量没有数据类型。编译器可以对const进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换中可能会产生意料不到的错误(边际效应)。2、有些集成化的调试工具可以对const常量进行调试,但是

2009-08-25 23:02:00 937

原创 面试2(C/C++试题汇总(微软))

1.求下面函数的返回值(微软)int func(x) {         int countx = 0;         while(x)         {               countx ++;               x = x&(x-1);          }         return countx; }  假定x = 9999。 答案:8思路:将x转化为2

2009-08-25 22:51:00 569

原创 C语言位运算符的使用

 一、按位与运算符&参与运算的两个量按照对应的位进行与运算,且0&0→0,  0&1→0,  1&0→0,  1&1→1利用按位与运算,我们可以方便地实现清零或取一个数的某些位。例如 取出a的低4位,将b的低4位清零。0x0F&a 取出a的低4位0xF0&b 将b的低4位清零这种方法称为“屏蔽方法”,其中0x0F、0xF0称为屏蔽字。二、按位或运算符|参与运算的两个量按照对应位进行或运算,

2009-08-25 22:44:00 1226

原创 关于#pragma

 多宏来控制源代码版本的时候,我们自己有可能都会忘记有没有正确的设置这些宏,此时我们可以用这条指令在编译的时候就进行检查。假设我们希望判断自己有没有在源代码的什么地方定义了_X86这个宏可以用下面的方法   #ifdef  _X86   #Pragma  message(“_X86  macro  activated!”)   #endif   当我们定义了_X86这个宏以后,应用程序在编译时就会

2009-08-25 22:20:00 471

原创 如何在运行时确定对象类型(RTTI)

 RTTI 是“Runtime Type Information”的缩写,意思是:运行时类型信息。它提供了运行时确定对象类型的方法。本文将简略介绍 RTTI 的一些背景知识、描述 RTTI 的概念,并通过具体例子和代码介绍什么时候使用以及如何使用 RTTI;本文还将详细描述两个重要的 RTTI 运算符的使用方法,它们是 typeid 和 dynamic_cast。    其实,RTTI 在C++中

2009-08-25 22:18:00 418

原创 模式设计 比较

 Creation Pattern 当系统演化成依赖于对象的组合、聚集时,创建性模式带来了更大的灵活性。 Abstract Factory:抽象工厂是创建对象族。它能确保被创建对象家族的一致性,和对象家族发生改变的灵活性,在跨平台的设计中可以得到应用。 Prototype:一种将对象生成的责任代理给自己的模式。它与C++中的拷贝函数不同,C++不支持拷贝函数的多态,即当对象使用基类的指针进行引用时

2009-08-25 22:16:00 410

原创 设计模式一点就通

一、创建型模式   FACTORY?人才市场:以往是要哪个人才,就找哪个人才,效率低,现在有了人才市场,我们只需直接去人才市场挑一个好了;    BUILDER?生产流水线:以前是手工业作坊式的人工单个单个的生产零件然后一步一步组装做,好比有了工业革命,现在都由生产流水线代替了。如要造丰田汽车,先制定汽车的构造如由车胎、方向盘、发动机组成。再以此构造标准生产丰田汽车的车胎、方向盘、发动机。

2009-08-25 22:13:00 515

原创 面试1

1.多态类中的虚函数表是Compile-Time,还是Run-Time时建立的? 2.将一个 1M -10M 的文件,逆序存储到另一个文件,就是前一个文件的最后一个 字符存到新文件的第一个字符,以此类推。 3.main主函数执行完毕后,是否可能会再执行一段代码? 4.一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? 在子类的空间里,有没有父

2009-08-25 20:58:00 845

原创 const

 1. const常量,如const int max = 100;   优点:const常量有数据类型,而宏常量没有数据类型。编译器可以对前者进行类型安全检查,而对后者只进行字符替换,没有类型安全检查,并且在字符替换时可能会产生意料不到的错误(边际效应) 2. const 修饰类的数据成员。如: class A {      const int size;      … } const数据

2009-08-25 19:55:00 978

原创 #include "filename" 和 #include 的区别

1、#include "filename" 和 #include 的区别对于#include ,编译器只在设置的包含文件路径搜索 filename,具体设置在“工具->选项->项目和解决方案->VC++目录”里设置包含文件的路径对于#include “filename” ,编译器先在filename指定的路径(相对或绝对)开始搜索filename,找不到再在设置的包含

2009-08-25 16:30:00 1214

原创 HSR算法-Occlusion Culling

现在的HSR(hidden surface removal)算法基本上可以分为四种:backface culling、frustum culling、portal culling、occlusion culling(遮挡筛选)。它们的作用分别如下:backface culling用于剔除mesh背面的triangle,frustum culling用于剔除屏幕之外的物体,portal cullin

2009-08-23 17:12:00 1453 1

原创 关于LOD的一篇经典文章

View-Dependent Refinement of Progressive MeshesHugues HoppeMicrosoft ResearchABSTRACTLevel-of-detail (LOD) representations are an important tool for real-time rendering of complex geometric environmen

2009-08-15 12:32:00 885

原创 相关资料0

[相关Blog文章][转贴]游戏引擎演化史 2005-05-06 magus_yang 可移植、可扩展多人3D游戏引擎的设计与构架 2005-02-03 zhudelunalpha 由开发卡片游戏想到的 2006-05-14 coollen_mmx 游戏引擎 2004-08-07 gullsky 3D体素引擎与Ken Silverman 2006-04-08 w

2009-08-14 16:35:00 737

原创 如何在类中实现回调成员函数

回调函数(Callback   function)大量用于Windows的系统服务,通过它,程序员可以安装设备驱动程序和消息过滤系统,以控制Windows的有效使用。许多程序员都发现,利用MFC或者其它的C++应用编写回调函数是非常麻烦的,其根本原因是回调函数是基于C编程的Windows   SDK的技术,不是针对C++的,程序员可以将一个C函数直接作为回调函数,但是如果试图直接使用C++的成员函

2009-08-08 22:36:00 488

原创 vsprintf, vswprintf与printf与函数的可变参数编程

在C语言编程中,我们不可避免的要接触到可变参数函数,对于不支持函数多态的C语言来讲,使用可变参数和宏定义函数是变通的实现函数多态的好方法。在进一步涉及到可变参数函数之前,我们先来看看常用到的两个可变参数的典型,分别是vsprintf和sprintf。一、vsprintf函数Header Filestdio.h CategoryMemory and String Manipula

2009-08-04 22:15:00 1524

原创 单宽字节转换

#include size_t mbstowcs(wchar_t *pwcs, const char *s, size_t n);   //转换单字符串为宽字符串size_t wcstombs(char *mbstr,   const wchar_t *wcstr,   size_t count );  //转换宽字符串为单字符串例如:CString str = L"hello"

2009-08-04 20:57:00 487

原创 时间复杂度

时间复杂度 算法时间复杂度取决于最深循环内包含基本操作的语句的重复执行次数,称语句重复执行的次数为语句的"频度"。   算法分析 同一问题可用不同算法解决,而一个算法的质量优劣将影响到算法乃至程序的效率。算法分析的目的在于选择合适算法和改进算法。一个算法的评价主要从时间复杂度和空间复杂度来考虑。 1、时间复杂度 (1)时间频度 一个算法执行所耗费的时间,从理论上是不能算出来的,必须

2009-08-03 20:27:00 709

转载 静态绑定与动态绑定

 静态绑定:编译时绑定,通过对象调用动态绑定:运行时绑定,通过地址实现                        C++的多态性                         静态多态性:函数多态性——函数重载                           模板多态性——C++模板(类模板、函数模板) 动态多态性:虚函数(只有用地址才能实现动态多态性)                 

2009-08-02 17:27:00 556

原创 重载操作符和用户定义的转换

操作符重载里有这样一条规则:赋值操作符(=),下标操作符([]),函数调用操作符(()),指针成员访问箭头(->)必须重载为类成员函数。1、操作符重载操作符重载使得程序员能够为类类型的操作数定义预定义的操作符版本,重载的操作符使得类类型对象可以与预定义的操作符一起被使用,使得对于类对象的操纵与内置类型的对象一样直观重载的操作符在类体中被声明,声明方式同普通成员函数一样,只不过它的名

2009-08-02 17:10:00 964

原创 对象数组与构造函数

定义对象数组时,数组中的各个元素需要构造函数来初始化。数组能否定义成功,关键在于每个元素都有合适的构造函数,默认构造函数并不是必须的。  1.动态对象数组,对象所属类型必须有public默认构造函数. 2.静态对象数组(1)没有提供初始化式的元素将调用默认构造函数来初始化 (2)提供初始化式的构造函数将调用相应的构造函数  class Dog{pub

2009-08-02 10:42:00 2698

原创 c++静态成员小结

 我同学面google,就被问了下面的问题静态类成员包括静态数据成员和静态函数成员两部分。 一 静态数据成员: 类体中的数据成员的声明前加上static关键字,该数据成员就成为了该类的静态数据成员。和其他数据成员一样,静态数据成员也遵守public/protected/private访问规则。同时,静态数据成员还具有以下特点: 1.静态数据成员的定义。 静态数据成员实际上是类域中的全局变量

2009-08-02 00:24:00 550

原创 指针和引用的区别

指针与引用看上去完全不同(指针用操作符’*’和’->’,引用使用操作符’.’),但是它们似乎有相同的功能。指针与引用都是让你间接引用其他对象。你如何决定在什么时候使用指针,在什么时候使用引用呢?  首先,要认识到在任何情况下都不能用指向空值的引用。一个引用必须总是指向某些对象。因此如果你使用一个变量并让它指向一个对象,但是该变量在某些时候也可能不指向任何对象,这时你应该把变量声明为指针,因为这样你

2009-07-31 23:55:00 450

原创 C/C++数组名与指针区别深入探索

 引言  指针是C/C++语言的特色,而数组名与指针有太多的相似,甚至很多时候,数组名可以作为指针使用。于是乎,很多程序设计者就被搞糊涂了。而许多的大学老师,他们在C语言的教学过程中也错误得给学生讲解:"数组名就是指针"。很幸运,我的大学老师就是其中之一。时至今日,我日复一日地进行着C/C++项目的开发,而身边还一直充满这样的程序员,他们保留着"数组名就是指针"的误解。  魔幻数组名  请看程序(

2009-07-31 23:53:00 392

原创 C++ Primer学习笔记

数据抽象和封装   数据抽象:数据抽象是一种依赖于接口和实现分离的编程和设计技术。类设计者必须关心类是如何实现的,而使用该类的程序员则不必了解这些细节,他们只需要了解类的接口就可以使用该类。    封装:封装是一种将低层次的元素组合起来形成新的、高层次实体的技术。函数是封装的一种形式:函数所执行的细节行为被封装在函数体内。被封装的元素隐藏了它们的实现细节——可以调用一个函数但不能访问它

2009-07-31 23:50:00 485

原创 C++ this指针的理解

先要理解class的意思。class应该理解为一种类型,象int,char一样,是用户自定义的类型。(虽然比int char这样build-in类型复杂的多,但首先要理解它们一样是类型)。用这个类型可以来声明一个变量,比如int x, myclass my等等。这样就像变量x具有int类型一样,变量my具有myclass类型。理解了这个,就好解释this了,my里的this 就是指向my的指针。如

2009-07-31 20:19:00 338

原创 封装和抽象

封装是OO的重要特征,这一点是毫无疑问的,至于算不算的上是OO的三大特征之一(另外两个是继承、多态),目前仍有争论,我也不想在这个问题上作过多的纠缠。    什么是封装呢?封装是一项将低层次的元素组合起来形成新的,高层次实体的技术。被封装的元素隐藏了它们的实现细节。封装是人们对现实世界中解决问题时,为了进行简化问题,对研究的对象所采用的一种方法,一种信息屏蔽技术。例如:打电话的时候,我们只需简单的

2009-07-31 09:29:00 597

原创 按揭买房的朋友请仔细看,怎样办理贷款最省钱

不知道各位正在买房的朋友们如果选择贷款买房会选择什么样的贷款方式呢?可能很多朋友对这个问题还不是很清楚,那么,我就把我自己最近的烦心事给大家说下,供大家参考!    银行在办理贷款时,有两种方式:1,等额本息;2,等额本金    下面,我来大概说下两种不同方式的意思:    1,等额本息:把按揭贷款的本金总额与利息总额相加,然后平摊到还款期限的每个月中。    2,等额本金:在还贷期限内,每年每月

2009-07-28 17:17:00 1058

转载 一个游戏程序员的学习资料

想起写这篇文章是在看侯杰先生的《深入浅出MFC》时,突然觉得自己在大学这几年关于游戏编程方面还算是有些心得,因此写出这篇小文,介绍我眼中的游戏程序员的书单与源代码参考。一则是作为自己今后两年学习目标的备忘录,二来没准对别人也有点参考价值。我的原则是只写自己研究过或准备研究的资料,所以内容无疑会带上强烈的个人喜好色彩,比如对网络,数据库等重要方面完全没有涉及。因为自己主要对三维图形引擎,人工智能算法

2009-07-23 20:03:00 1199 1

原创 DirectX与OpenGL方面的经典电子书下载

Programming MS DirectShow for Digital Video & TV.chmhttp://219.139.240.53/itebook/MS Press - Programming MS DirectShow for Digital Video & TV.chmMICROSOFT.DIRECTX.9.PROGRAMMABLE.GRAPHICS.PIPELINE.ra

2009-07-20 22:58:00 5039

原创 Lua

Lua 是一个小巧的脚本语言。作者是巴西人。该语言的设计目的是为了嵌入应用程序中,从而为应用程序提供灵活的扩展和定制功能。它的主页是 www.lua.org。  Lua最著名的应用是在暴雪公司的网络游戏WOW中。  Lua脚本可以很容易的被C/C++代码调用,也可以反过来调用C/C++的函数,这使得Lua在应用程序中可以被广泛应用。不仅仅作为扩展脚本,也可以作为普通的配置文件,代替XML,

2009-07-13 13:12:00 924

原创 游戏引擎扫盲

以下是摘自日本著名杂志《FAMI通》游戏中文版评论杂志》 在阅读各种游戏介绍的时候我们常常会碰见“引擎”(Engine)这个单词,引擎在游戏中究竟起着什么样的作用?它的进化对于游戏的发展产生了哪些影响?希望下面这篇文章能为大家释疑。 一、什么是引擎 我们可以把游戏的引擎比作赛车的引擎,大家知道,引擎是赛车的心脏,决定着赛车的性能和稳定性,赛车的速度、操纵感这些直接与车手相关的指标都是建立在引擎的基

2009-07-13 12:14:00 1417

原创 3D引擎简介

什么是3D引擎       3D引擎作为一个名词已经存在了很多年,但即使是一些专业的引擎设计师,也很难就它的定义达成一个共识。通常来说,3D引擎作为一种底层工具支持着高层的图形软件开发。你可以把它看成是对3D API的封装,对一些图形通用算法的封装,对一些底层工具的封装。我无法准确的定义3D引擎的含义和作用,因为针对不同的用户和开发项目,3D引擎完成的功能可能都有不同。因此,我将从功能的角度来

2009-07-13 12:13:00 739

[人工智能].Artificial.Intelligence.June.2006.PDF

[人工智能].Artificial.Intelligence.June.2006.PDF

2009-09-11

s3c2410完全开发手册

s3c2410完全开发手册,本书面向由传统 51 单片机转向 ARM 嵌入式开发的硬件工程师、由硬件转嵌入式软件开发的工程师、没有嵌入式开发经验的软件工程师。

2009-09-11

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除