自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(66)
  • 资源 (8)
  • 收藏
  • 关注

原创 原来还有这里

原来你一直在这里技术职业生涯2005/2008:C++服务器开发2008/2011:C++客户端端游逻辑开发2011/2015:C++端游游戏引擎开发2015/- :游戏开发负责客户端、服务器、项目管理

2021-01-25 15:45:55 100

转载 D3DPOOL和D3D资源

D3D资源管理资源分类           顶点缓冲(VertexBuffer)    索引缓冲(IndexBuffer)    纹理(Texture)资源存储              显存(Video Memory)       通过AGP直接访问的内存(AGP Aperture,也叫做非本地显存)       系统内存(System Memory)

2013-05-29 10:57:34 674

转载 对D3D中AGP显存、内存、显存三种内存的解释

三种内存AGP内存(非本地显存),显存(本地内存),系统内存,其中我们都知道系统内存就是咱那内存条,那这AGP内存是个啥玩意啊?其实是因为在以前显卡内存都很小,那时还是在显存是16M,32M为主流的时候,如果你运行一个需要很多纹理的3D程序,那么显存一会就不够用了,那该咋办呢?只好问系统内存借点用用了!这就是AGP内存的由来,在我们电脑BIOS中有个设置AGP Aperture的选项,这里就是设置

2013-05-29 10:56:41 622

转载 D3DPOOL(资源池)

D3DPOOL定义了资源对应的内存类型,资源可以是texture surface, vertex buffer等,有以下几种POOL类型D3DPOOL_DEFAULTD3DPOOL_MANAGEDD3DPOOL_SYSTEMMEMD3DPOOL_SCRATCHD3DPOOL_FORCE_DWORDD3DPOOL_DEFAULT资源被存储在最适合给

2013-05-29 10:55:42 684

转载 directx中丢失的设备(lost device)

丢失的设备一个Microsoft? Direct3D?可以处于操作状态或丢失状态。操作状态是设备的正常状态,设备按预期运行并present所有渲染结果。当事件发生时,如全屏应用程序失去键盘输入焦点,设备就转变到丢失状态,这会导致渲染无法进行。丢失状态表现为所有渲染操作的悄然失败,这意味着即使渲染操作失败所有的渲染方法仍可以返回成功码。在这种情况下,IDirect3DDevice9:rese

2013-05-29 10:48:32 703

转载 D3D的设备丢失处理经验

1.什么时候会设备丢失?全屏下被强制切回桌面时就会设备丢失创建于显存的资源在设备丢失时会破损,如果没有重新载入就会引起设备丢失 2.哪些资源会影响设备丢失?在创建D3D资源时,可以选择自己管理D3D资源还是让D3D帮你管理资源,前者需要在设备丢失时手动重新载入;后者就不需要。对于使用D3DPOOL_DEFAULT时为自己管理资源,D3DPOOL_MANAGED为D3D管

2013-05-29 10:48:11 5565

转载 特效的批量绘制

http://blog.csdn.net/javazjh/article/details/6015056  特效的批量绘制张嘉华([email protected])特效系统是游戏中的一个重要组成部分,在场景布谷,角色技能等有广泛应用。一个特效往往包含多种多样的组成元素:粒子系统,公告板,音效,图元轨迹,模型特效,镜头滤镜/震动/模糊,动态光源等。其中以粒子系

2013-05-29 10:17:49 887

转载 一个提高渲染效率的小技巧

在3D游戏中,UI占了很大一部分窗口元素,比如魔兽争霸1024*768屏幕设置,除去底部控制台及顶部资源面板,场景渲染区域只有1024*570。要知道对于如今的3D游戏,越来越多的资源使用normalmap,越来越复杂的着色器代码,能够避免四分之一的ui窗口区域无效渲染,带来的性能提升余地是很大的。      正常的渲染次序是:RenderScene();RenderUI()。被UI界面遮

2013-05-29 10:16:52 520

转载 渲染状态管理

文档简介:  提高3D图形程序的性能是个很大的课题。图形程序的优化大致可以分成两大任务,一是要有好的场景管理程序,能快速剔除不可见多边形,并根据对象距相机远近选择合适的细节(LOD);二是要有好的渲染程序,能快速渲染送入渲染管线的可见多边形。   我们知道,使用OpenGL或Direct3D渲染图形时,首先要设置渲染状态,渲染状态用于控制渲染器的渲染行为。应用程序可以通过改变渲染状态来

2013-05-29 10:10:35 879

转载 如何查找DirectX3D应用程序的显存泄露

在关闭一个基于D3D的应用程序时,D3D调试运行库会报告内存泄露。按照以下步骤定位泄漏点。1. 在DirectX Control Panel中(通常在DXSDK安装目录中可以找到),启用“Use Debug Version of Direct3D 9”并且将Debug Output Level设置为”More”。确保Break on Memory Leaks被禁用。点击Apply。

2013-05-29 09:58:56 738

转载 最先进的开源游戏引擎KlayGE 4.1发布

转载请注明出处为KlayGE游戏引擎,本文的永久链接为http://www.klayge.org/?p=1976 经过KlayGE团队半年的通力合作,今天KlayGE 4.1正式发布了!这个版本主要注重性能的提升和现有功能的改进,为次世代评测软件KlayMark的开发做好准备。KlayGE 4.1的主要更新如下:完全使用cmake工程字体读写成为独立的库屏幕空间反射

2013-05-29 09:49:38 611

转载 大规模草地的快速绘制排序

在现在的3D游戏室外场景中大片的茂密草丛为游戏增色不少,是玩家游戏体验真实感的重要组成部分。众所周知,对于象草这样的半透明物体在绘制时需要按到摄像机由远至近的顺序进行排序,否则会出现视觉错误。如果每一帧都对成千上万的草进行排序,CPU开销是极大的,甚至是不可接受的。解决这一问题的方法有三个:    一是只对近处的草进行排序,但在草的密度很大的时候依然有很大的cpu开销。    二是使用al

2013-05-29 09:35:57 654

转载 GeoMipMap地形万能索引生成器

此函数用于生成GeoMipMap地形算法的索引Buffer,可以生成一个由参数指定的特定Patch的所引数据,生成的几何体为三角形条带,生成三角形中有部分退化三角形,用于三角形条带的连接。生成的三角形是CCW或者CW一致的。pIndex     :指向索引Buffer当前填充位置wWidth    :Patch的大小,取值范围9,17,33......wLevel     :Lod

2013-05-29 09:34:37 699

转载 使用Pix For Windows调试Shader傻瓜教程

来源:http://hi.baidu.com/_%E2d_%B7%B3_%DE%B2%C2%D2/blog/item/6c5251d185c124d9572c84ae.html下面,我们来介绍一下怎么使用DX SDK自带的工具PIX For Windows来调试Shader。这里只做简要的介绍,具体的情参看PIX的文档哈。如何找到文档呢?打开DX SDK开始菜单下面的DirectX Docum

2013-05-28 23:53:24 645

转载 PIX for Windows使用

工具路径:[安装目录]\Microsoft DirectX SDK (August 2009)\Utilities\bin\x86\PIXWin.exe或在开始菜单中\Microsoft DirectX SDK (August 2009)\Utilities下找, 图标为  【开启】后,如图: 【新建】:如图中设定:       Program: 你要准备监测的应用程序路径

2013-05-28 23:52:49 1069

转载 Intel并行编程及软件工具系列讲座观看指南

08年底和今年初, 经英特尔亚太区营销及市场策划总监刘燕玲女士(Annie Lau), 英特尔高级经理Colt Gan策划, 我们编辑了两个系列的网络视频讲座, 一个是”5分钟快速理解…”系列, 快速介绍了Intel的系列软件开发工具;另一个是”并行编程与优化系列”.主要是介绍并行编程与优化的入门知识并展示了一些例子.为了让朋友们更好地利用这些视频,我把它们做了个分类,并加上简单地介绍,同

2013-05-28 23:48:20 857

转载 VTune安装

转载自 guojun_zhang最终编辑 guojun_zhang1.   VTune安装 在Windows下安装VTune是很简单的,就是运行install,然后基本上一路回车就行。 Linux下的安装比较麻烦,因为会涉及到VDK的问题。VDK是VTune   Driver   Kit的简称,VTune要在Linux下安装一个driver才能正常工作,而V

2013-05-28 23:47:38 1585

转载 vtune使用笔记

1. 介绍Vtune 是 intel 的一款性能分析工具,其既可以分析某种应用的特性,也可以检测整个系统的特性,能够找出热点瓶颈的所在,给开发者提供良好的优化思路。 2.Vtune 下载,安装 Vtune 有 windows 版本和 linux 版本,有收费的,试用的,免费的。本人使用的是一款试用版本, vtune 地址 http://software.intel.com/en

2013-05-28 23:47:14 1351

转载 VTune工具使用心得

0.  概述VTune是Intel一个比较强大的性能分析软件。主要包括三个小工具:(1)Performance Analyzer:性能分析,找到软件性能比较热的部分,一般也就是性能瓶颈的关键点,帮助我们收集数据发现问题,至于Analyzer这个功能,有点大言不惭了,还得靠各位大家自己分析了,当然个人认为这一点会是Intel下一步强化该工具的重点。(2)Intel Threading C

2013-05-28 23:44:54 2075

转载 Precomputed Radiance Transfer心得

PRT(Precomputed Radiance Transfer)是近几年出现的渲染技术,能够在实时绘制物体时实现光线多次反射、软阴影、子表面散射等效果,可以真实地表现具有一定透明度的物体,例如皮肤。 其实现原理主要是通过预计算,渲染公式(p点在d方向的辐射度):L(p->d)=Le(p->d)+∫Fr(p,s->d)L(pp表示当前位置,s和d分别为入射光方向和出射光方向(球坐

2013-05-28 23:39:11 926

转载 渲染到纹理(Render To Texture, RTT)详解

RTT是现在很多特效里面都会用到的一项很基本的技术,实现起来很简单,也很重要。但是让人不解的是网上搜索了半天只找到很少的文章说这个事儿,不知道是因为太简单还是因为这项技术已经出现很长时间了。总之我是在摸索这个东西的时候绕了不少弯子。现在把具体的实现方法写下来。渲染到纹理,顾名思义就是把渲染目标从帧缓存变成一个纹理。这样就可以把一个场景渲染后在进行Post Process,做出现在流行的各种

2013-05-28 09:32:48 1688

转载 D3D中的渲染到纹理

渲染到纹理是D3D中的一项高级技术。一方面,它很简单,另一方面它很强大并能产生很多特殊效果。 比如说发光效果,环境映射,阴影映射,都可以通过它来实现。渲染到纹理只是渲染到表面的一个延伸。我们只需再加些东西就可以了。首先,我们要创造一个纹理,并且做好一些防范措施。第二步我们就可以把适当的场景渲染到我们创建的纹理上了。然后,我们把这个纹理用在最后的渲染上。  ?main.cpp  首先我们得声

2013-05-28 09:32:23 625

转载 DirectX-渲染到纹理

什么是纹理熟悉DX的兄弟们都知道什么叫纹理了,这里简单介绍一下,先看看现实生活中的例子吧,其实纹理的例子比比皆是,比如地板,墙面都是纹理。在图形学中,纹理主要是为了增强场景的真实感,比如你想绘制一个地面,简单一点可以直接使用一个矩形,稍微复杂一点可以用三角形网格,再复杂一点可以使用地面纹理,有了纹理以后真实感明显增强了。DX中的纹理其实就是就是对现实生活中纹理的模拟,但是它不仅仅是一张图片

2013-05-28 09:28:28 692

转载 Direct3D轮回:游戏场景之河流

名人名言:每个人在他生活中都经历过不幸和痛苦。有些人在苦难中只想到自己,他就悲观消极发出绝望的哀号;有些人在苦难中还想到别人,想到集体,想到祖先和子孙,想到祖国和全人类,他就得到乐观和自信。——洗星海 继天空、陆地之后,用于构建游戏场景的另一个必须的元素莫过于河流~本节我们基于特定的特效文件Water.fx来完成水面模块的构建。以下是该特效文件的HLSL代码:

2013-05-28 09:24:46 1182

转载 DDS贴图介绍 ok

DDS是DirectDraw Surface的缩写,它是DirectX纹理压缩(DirectX Texture Compression,简称DXTC)的产物。 DXTC减少了纹理内存消耗的50%甚至更多,有3种DXTC的格式可供使用,分别是DXT1,DXT3和DXT5。DXT1 压缩比例:1:8   --2D场景里的地表层,一般是用BMP,就可以用这个进行压缩压缩比最高,它只有1B

2013-05-28 09:21:06 1006

转载 Direct3D通用技术与特殊效果

Direct3D提供了一套强有力的工具来帮助我们提高三维场景的逼真度。下面我们将讨论一些Direct3D产生的通用的特殊效果。但是,可能出现的效果并不只限于这里所讨论的内容。下面我们分成几个主要的部分:1. 雾化(Fog)2. 公告板技术(Billboarding)3. 云、烟与蒸汽效果(Clouds, Smoke, and Vapor Trails)4. 纹理融合技术(Texture

2013-05-28 09:13:03 685

转载 3D地形多层纹理混合加阴影渲染方法

修正:我重新观察了一下Torque引擎 Demo的地形,发现在他在一个方块内最多用了3张贴图。这3张贴图就需要3个TextureStage,再加上2个提供Alpha值的Stage,总共就是5个TextureStage。这对显卡要求太高,至少我的显卡只支持4个TextureStage。那么就必须使用MultiPass了,多遍渲染。这篇文章说的把Alpha信息存储在顶点Diffuse里面的方法,还

2013-05-28 09:06:41 803

原创 speed tree技术分析

两年前第一次下载speed tree demo运行时,立刻被精美的画面所震撼,场景中大片的树木尤其吸引我的眼球,speed tree使用何种技术来渲染大范围的植物一直令我不解。因为在很多游戏中对树木的渲染都可以很明显地看到多边形的痕迹,而在speed tree中你几乎看不到任何破绽,繁茂的树叶、精确的光照、shadow、self-shadow,这些元素构造起了一个完美的树木。

2013-05-28 09:04:30 3778

转载 DirectX 性能优化

1 只在必须的时候Clear。IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。状态包括RenderState,SamplerState,TextureStageState等3 纹理尺寸尽可能小4 从前至后渲染场景中的对象从前至后渲染可以尽可

2013-05-27 22:58:07 712

转载 Direct3D的一些小贴士

GPU性能调试:通常来说,使用CPU时间事件来调试GPU是低效并且是不准确的。D3D API在多数命令下会阻塞,甚至是Draw函数。它会在一些时间片上做一些真正的工作,而这往往是不可预知的。因此,GPU的性能调试只能用PIX或者是其他专用产品,例如NVIDIA’s NVPerfHUD来进行。显卡所用的内存:显卡所用的内存可以分为两大类:本地的和非本地的(相对于显卡来说)。在显卡处理的某

2013-05-27 22:52:56 524

转载 SetStreamSource函数与数据流的使用 ok

Microsoft® DirectX® 8.0引入了数据流的概念,用来把数据绑定到着色器使用的输入寄存器。一个数据流是一个成员数据的数组,每个成员由一个或多个元素构成,这些元素代表单个实体,如位置、法向、颜色等等。数据流使图形芯片能并行地从多个顶点缓存执行直接内存访问(DMA)操作,同时也降低了多重纹理的开销。可以这样理解数据流:一个顶点由n个数据流组成。  一个数据流由m个元素组成。

2013-05-27 22:47:00 508

转载 纹理(讲得比较详细的文章)

纹理是增强计算机生成的三维图像的真实感的有力工具。Microsoft® Direct3D®支持广泛的纹理特性,并使开发人员可以很方便地使用高级纹理技术。本节讲述如何使用纹理。纹理的基本概念纹理坐标纹理过滤纹理资源纹理环绕纹理混合表面以下主题将更详细地介绍另外的纹理功能。Mipmap的自动生成自动纹理管理压缩纹理资源使用纹理时需要考虑的硬件问题立体纹理资源要提

2013-05-25 15:24:14 1072

转载 Direct3D 9.0 SDK 中文版

http://www.gesoftfactory.com/developer/

2013-05-21 23:56:08 570

转载 阴影贴图

概况  阴影贴图(Shadow mapping)是在三维计算机图形中加入阴影的过程。阴影贴图的概念最初是由 Lance Williams 于1978年在“在曲面上投射阴影”这篇论文中提出的。从那时开始,这种方法就已经用于场景预渲染、实时甚至是许多游戏设备以及高端电脑游戏中。在Pixar 的RenderMan 中就使用了阴影贴图技术,同样,在玩具总动员 这样的游戏中也使用了这项技术。

2013-05-21 23:54:48 668

转载 四元数(Quaternions)-ok

为什么使用四元数为了回答这个问题,先来看看一般关于旋转(面向)的描述方法-欧拉描述法。它使用最简单的x,y,z值来分别表示在x,y,z轴上的旋转角度,其取值为0-360(或者0-2pi),一般使用roll,pitch,yaw来表示这些分量的旋转值。需要注意的是,这里的旋转是针对世界坐标系说的,这意味着第一次的旋转不会影响第二、三次的转轴,简单的说,三角度系统无法表现任意轴的旋转,只要一开始

2013-05-21 23:48:37 661

转载 多线程渲染-ok

首先我们得明确3D引擎使用多线程的目的所在:1、在CPU上进行的逻辑计算(比如骨骼动画粒子发射等)不影响渲染速度2、较差的GPU渲染速度的低下不影响逻辑速度      第一个目标已经很明确了,我来解释下需要达到第二个目标的原因:许多动作游戏的逻辑判定是基于帧的,所以在渲染较慢的情况下,逻辑不能跳帧,而仍然需要严格执行才能保证游戏逻辑的正确性,这就导致了游戏速度的放慢,而实际上个人认为渲

2013-05-21 23:41:15 569

转载 关于多线程渲染-ok

困扰了一个多月的问题,今天终于有个阶段性的了结了,虽然不知道算不算真正的了结.多核的cpu现在是大势所趋,渲染是一个很费时的活,所以应该考虑考虑能不能利用多核来提升这部分的性能.引擎一开始没有在多线程方面作任何的考虑,因为我从来就不喜欢多线程,这方面的思考能力不强,而且一开始写个单线程的engine已经够费事了,要加入多线程的设计对我来说实在是太难了.但是在积累了这么多时间的经验以后,

2013-05-21 23:36:01 885

转载 多线程 False Sharing问题-ok

在多处理器,多线程情况下,如果两个线程分别运行在不同的CPU上,而其中某个线程修改了cache line中的元素,由于cache一致性的原因,另一个线程的cache line被宣告无效,在下一次访问时会出现一次cache line miss,哪怕该线程根本无效改动的这个元素,因此出现了False Sharing问题【1】。如下图所示,thread1修改了memory灰化区域的第[2]个元素,而

2013-05-21 23:31:54 638

转载 多线程渲染技术 Dx 10/11 -ok

虽然超线程概念已经在CPU领域发展了数十年,但大多数程序员还是直到近年来多核心CPU流行之后才开始关心程序的平行化,在此之前大部分通用代码都是简单的单线程,在这些代码里寻找并挖掘多线程化带来的性能提升是非常困难的。    为了改变这一现状,DirectX 11特性还包括很重要一点:支持多线程(multi-threading)。没错,无论是DirectX 10还是DirectX 11,所有的色彩

2013-05-21 23:21:17 672

转载 3D渲染流水线

1、模型坐标系到世界坐标系:模型的每个顶点经旋转和缩放之后平移到世界坐标的位置。2、隐藏面消除(可选):通常执行的测试为背面消除和包围球测试,在世界空间中进行。      2.1、包围球测试原理:对于世界空间中的每个物体,创建一个包围球,只对球心执行世界坐标到相机坐标的变换,并判断整个球体是否位于视截体内,如果不在,则丢弃它包围的物体。如果球体的一部分在视截体内,需要在将整个模型变换到相机

2013-05-18 23:11:00 543

orge结构和代码分析中文资料汇总

orge结构和代码分析中文资料汇总 orge结构和代码分析中文资料汇总

2009-11-02

A星算法自寻路A星算法自寻路 游戏使用

A星算法自寻路A星算法自寻路 游戏使用 A星算法自寻路A星算法自寻路 游戏使用

2009-10-11

A星算法 最短路径寻路算法

星路径搜索(采用二叉堆),最短路径寻路算法

2009-10-11

A*算法 java版本

A*算法 java版本 A*算法 java版本 A*算法 java版本

2009-10-11

C++编码200例 学习C++的好教材

C++编码200例 学习C++的好教材 C++编码200例 学习C++的好教材

2009-10-11

深度探索C++对象模型

深度探索C++对象模型 很好用的书 深度探索C++对象模型

2009-09-21

改善程序设计技术的50个有效做法

改善程序设计技术的50个有效做法 非常好的书

2009-09-21

Depends dll依赖关系查看器

查看dll依赖关系 depends MStools 比dumpbin强老多的工具

2009-09-21

空空如也

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

TA关注的人

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