
优化相关
文章平均质量分 69
pizi0475
这个作者很懒,什么都没留下…
展开
-
游戏优化
http://blog.youkuaiyun.com/fuzb/article/details/2419591 最近一直在搞优化,代码不断的被翻来翻去,这里想回顾一下,当然明天还要继续,因为没有最快,只有更快我们的引擎是一个次时代引擎的框架,等把基本的东西(地形和模型等)快速完成后,游戏的帧速不理想,切换场景的时候也会卡一下.显然完全不能实用,所以开始优化了1)发现这些基础的数据结构转载 2012-08-30 07:07:43 · 1481 阅读 · 0 评论 -
关于引擎优化的相关资料
最近在优化项目中用的到引擎,下面是搜集到的一下资料,转帖如下: 1 只在必须的时候Clear。IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。状态包括RenderState,SamplerState,TextureStageStat转载 2012-07-20 16:42:43 · 2330 阅读 · 0 评论 -
Ogre的渲染优化心得
做商业网络游戏的话,效率是一个不可避免的话题,为了留更多的空间给客户端的逻辑,那么渲染模块就应该尽量高效. 小弟只浅谈一下Ogre的渲染优化,以大家熟悉的天龙八部为例. 以网上流传版本的天龙代码来看,Ogre和CEGUI部分的渲染都有严重的性能问题, Ogre: 地形的实现,一个tile,只按材质做了批次优化,并没有按材质做摄像机的裁剪,导致游戏视角下批次增加很多 静态实体的合并,完全错误的做法,转载 2011-04-11 16:14:00 · 2802 阅读 · 1 评论 -
最强神作!Crysis深度剖析与优化指南
题目:最强神作!Crysis深度剖析与优化指南作者:小熊在线——WolStame介绍:最强游戏Crysis全方位剖析与深度优化指南关键:CRYSIS/DX10游戏/技术剖析/优化原创:小熊在线——Ben Tse第1页:前言:万众期盼的危机第2页:三兄弟的游戏梦与CryEngine的诞生第3页:游戏界的《侏罗纪公园》第4页:年度黑马,成名之转载 2012-08-07 06:54:38 · 9105 阅读 · 0 评论 -
针对ParticleUniverse的特效优化以及其他OGRE优化杂谈
http://blog.youkuaiyun.com/nuiuyi/article/details/6665904 0.序对于使用ParticleUniverse制作的Ogre游戏来说,特效效率问题是很严峻的。很久没有发文章了,这里将结合我最近遇到的问题简单分享一下我面对的问题以及我个人的解决思路。1. 引子,关于ParticleUnverse的visual particle转载 2012-08-18 08:12:47 · 3065 阅读 · 0 评论 -
优化C++程序编译效率的实
发帖人:FlyToTheSpace时 间: 2005-12-27 22:12原文链接:http://bbs.pediy.com/showthread.php?threadid=19823详细信息:(1)自定义程序的入口(2)合并区段(3)不用调malloc,free等函数(3)不用cout来输出,cin来输入(4)如果调用了很多库函数如memset,st转载 2010-04-09 21:40:00 · 1585 阅读 · 0 评论 -
特效系统的优化
1.合并渲染批次合并同一发射器发射的粒子(材质肯定相同);合并相同材质的特效节点;(透明节点不用考虑排序,效果没多大问题,不用考虑用什么order independant transparency) 遇到的问题:triangle list的特效节点合并没啥难度,triangle strip的呢?要用退化三角形! http://realtimecollisiondetection转载 2012-07-27 21:51:53 · 1824 阅读 · 0 评论 -
一种简单有效的3D模型的动画多线程方案
分类:Parallel Computing 标签:Multi-Core; Game一种简单有效的3D模型的动画多线程方案作者:郭胜,英特尔公司软件与解决方案事业部摘要 本文将介绍一种简单而有效的多线程方案,能加速大量的3D模型的动画渲染。此方案通过使用线程池、双缓冲、间隔更新等方法显著提升了骨骼动转载 2012-09-02 04:34:18 · 2945 阅读 · 0 评论 -
SSE优化引擎
周末在家尝试着使用sse对引擎进行优化。 关于如何使用sse这里并不多说,有很多资料,这里提一下,使用sse无非就是直接使用汇编或是使用函数指令,如果是诸如解码器核心之类的推荐使用汇编直接进行优化,毕竟可以将核心全部用汇编实现,其他情况下使用sse函数指令即可。 接下来说一下sse在3D引擎中的优化。可优化的地方很多,但总的来说绝大部分优化都集中在了数学运算,3D游戏的数学运算基本转载 2012-09-02 04:38:25 · 1448 阅读 · 0 评论 -
面向GPU 的多LOD 因子的大规模场景可视化策略
面向GPU的多LOD因子的大规模场景可视化策略张嘉华 梁成 陈利强 陈春华 newzjh@msn.com aliceliang@163.net sailmer@hotmail.com musalan@msn.com华南理工大学计算机科学与工程学院(510640)图 1. 多LOD因子控制的大规模地形渲染(C1=1.03,C2=1转载 2012-09-02 05:00:30 · 3591 阅读 · 0 评论 -
三维场景的渲染优化
一 如何进行有效的性能评测 对于任何一个3D应用程序来说,追求场景画面真实感是一个无止尽的目标,其结果就是让我们的场景越来越复杂,模型更加精细,这必然给图形硬件带来极大的负荷以致于无法达到实时绘制帧率。因此,渲染优化是必不可少的。在渲染优化之前,我们需要对应用程序性能进行系统的评测,找出瓶颈,对症下药。对于3D应用程序来说,影响性能的十分多,同时不同的硬件配置条件下,瓶径也会有所不同。转载 2010-05-19 23:00:00 · 2075 阅读 · 0 评论 -
C++ 应用程序性能优化 -- 内存池
级别: 中级冯 宏华, 高级软件工程师, IBM 中国开发中心徐 莹, 开发经理, IBM 中国软件开发中心程 远, 高级软件工程师, IBM 软件开发中心汪 磊, 高级软件工程师, IBM 中国开发中心2007 年 11 月 29 日本书主要针对的是 C++ 程序的性能优化,深入介绍 C++ 程序性能优化的方法和实例。全书由 4 个篇组成,第 1 篇介绍 C++ 语言转载 2010-05-11 21:43:00 · 2255 阅读 · 0 评论 -
基于多核平台优化的OGRE 3D渲染引擎
基于多核平台优化的OGRE 3D渲染引擎陈天洲1+,陈学亮1, 施青松11(浙江大学计算机学院,浙江杭州,310027)摘 要:近年来,随着计算机体系结构的发展,多核平台的应用越来越广泛。多核平台与并行计算理论结合,以多线程的方式有效的提高了应用程序性能。本文针对图形领域中广为使用的OGRE 3D渲染引擎,从多帧渲染、循环迭代、函数调用三个方面进行多线程并行优化,并在多核平台上进行测试转载 2012-06-20 09:27:06 · 3606 阅读 · 0 评论 -
基于GPU的优化处理
早期的三维场景绘制,显卡只是为屏幕上显示像素提供一个缓存,所有的图形处理都是由CPU单独完成,而渲染一个复杂的三维场景,需要在短时间内处理几百万个三角形顶点和光栅化上百万个像素,擅长于执行串行工作的CPU实际上难以胜任这项任务,速度上达不到要求。所以,若要求在PC上实时生成三维图像,则将牺牲质量,导致画面很粗糙。现阶段,GPU的发展极大地提高了计算机图形处理的速度和图形质量,并促使图形处理功能不断转载 2011-03-23 10:01:00 · 4164 阅读 · 0 评论 -
DirectX 性能优化
1 只在必须的时候Clear。IDirect3DDevice9::Clear函数通常需要花费较多的时间,因此要尽量少调用,而且只清空的确需要清空的缓存。2 尽量减少状态切换。并且将需要进行的状态切换组合在一起设置。状态包括RenderState,SamplerState,TextureStageState等3 纹理尺寸尽可能小4 从前至后渲染场景中的对象从前至后渲染可以尽可转载 2011-05-16 16:22:00 · 3522 阅读 · 2 评论 -
Ogre 大场景优化
整个机场模型一共有三千多个mesh文件,加载到程序中倒没出什么状况;加载后竟然显示每次渲染用了三千多个batch,帧速率也就20左右。以前一直以为,有多少个material就会有多少个batch,可是“质问”过宋以后,发现人家已经将能合并的都合并了,一共只有72个material,顿时晕倒!! mesh和batch的数量不会这么吻合吧? 看来除了material,subm转载 2012-06-20 09:19:45 · 2633 阅读 · 0 评论 -
Direct3D的一些小贴士
GPU性能调试:通常来说,使用CPU时间事件来调试GPU是低效并且是不准确的。D3D API在多数命令下会阻塞,甚至是Draw函数。它会在一些时间片上做一些真正的工作,而这往往是不可预知的。因此,GPU的性能调试只能用PIX或者是其他专用产品,例如NVIDIA’s NVPerfHUD来进行。显卡所用的内存:显卡所用的内存可以分为两大类:本地的和非本地的(相对于显卡来说)。在转载 2011-05-16 16:24:00 · 1354 阅读 · 0 评论 -
体绘制加速技术之数据异步传输
异步数据传输允许在不需要CPU的参与下进行数据传输,比如在数据传输的时候CPU可以继续完成其他任务。当CPU启动传输操作之后,接下来由DMA控制器来完成传输操作。如果体数据比较大,无法全部存储在GPU内存空间中,那么数据块在渲染过程中需要不断被重新加载到GPU内存当中。为了在加载的过程中获得最佳性能,数据块需要在主存中以某种方式存放,以使得他们能够被当做连续块传输到GPU中。当采用glTe转载 2012-09-01 19:41:03 · 1524 阅读 · 0 评论 -
SSE
SSE是指令集的简称,它包括70条指令,其中包含单指令多数据浮点计算、以及额外的SIMD整数和高速缓存控制指令。其优势包括:更高分辨率的图像浏览和处理、高质量音频、MPEG2视频、同时MPEG2加解密;语音识别占用更少CPU资源;更高精度和更快响应速度。计算机上的SSE SSE(Streaming SIMD Extensions)是英特尔在AMD的3D Now!发布一年之转载 2012-09-02 04:37:00 · 1901 阅读 · 0 评论 -
Visual C++ 优化概述
作者 Kate Gregory 适用于:Microsoft Visual C++ .NET 2003Microsoft Visual C++ Toolkit 2003Microsoft Visual Studio .NET摘要:演示了 Visual C++ 2003 编译器提供的众多代码优化功能中的几项功能。(8 页打印页)本文是 Vis转载 2010-05-20 23:05:00 · 1665 阅读 · 0 评论 -
C++代码优化方法总结
C++代码优化方法总结 优化是一个非常大的主题,本文并不是去深入探讨性能分析理论,算法的效率,况且我也没有这个能力。我只是想把一些可以简单的应用到你的C++代码中的优化技术总结在这里,这样,当你遇到几种不同的编程策略的时候,就可以对每种策略的性能进行一个大概的估计。这也是本文的目的之所在。一. 优化之前 在进行优化之前,我们首先应该做的是发现我们代码的瓶颈(bottleneck)在转载 2010-05-20 23:02:00 · 1581 阅读 · 0 评论 -
优化编译器的发展
1. 19世纪50年代,IBM的Backus领导开发了Fortran语言及相应的编译器,这个项目是编译器发展中的一个重要里程碑。这个编译器生成的代码与机器语言程序员所写的代码相当。遍(pass或phase)的概念就是在这个项目中引入的。Backus认为编译器的转化可以理解为是消除,这个项目中使用了循环不变量代码外移,数据流分析和寄存器分配等优化。John Backus. The histo转载 2011-04-04 18:29:00 · 1477 阅读 · 0 评论 -
嵌入式实时程序设计C/C++的代码优化
1 引言 计算机技术和信息技术的高速发展的今天,计算机和计算机技术大量应用在人们的日常生活中,嵌入式计算机也得到了广泛的应用。 嵌入式计算机是指完成一种或多种特定功能的计算机系统,是软硬件的紧密结合体。具有软件代码小、高度自动化、响应速度快等特点。 特别适合于要求实时和多任务的应用体系。嵌入式实时系统是目前蓬勃发展的行业之一。 但是,实时嵌入式系统的特点使得其软件受时间和空间的严格限制,加转载 2010-04-08 14:51:00 · 1351 阅读 · 0 评论 -
你的驱动听话吗 浅谈ATI显卡驱动优化
你的驱动听话吗 浅谈ATI显卡驱动优化内容简介:对于显卡稍有了解的朋友一定不会陌生ATI显卡。昔日,ATI显卡凭借其优秀的视频回放能力和出色的着色渲染能力俘获众多DIY爱好者的心,甚至有网友将ATI的显卡称为真正的显卡。在DX10还未推出之前,NVIDIA一直靠较高 对于显卡稍有了解的朋友一定不会陌生ATI显卡。昔日,ATI显卡凭借其优秀的视频回放能力和出色的着色渲染能力俘获众多DIY爱好者的转载 2012-05-27 08:29:08 · 2250 阅读 · 0 评论 -
Speedtree 剔除优化原理
MotivationThis section outlines a culling algorithm specifically designed for rendering very large forests and has been tested on forests as large as 10,000,000 trees covering 1,600 square miles. A转载 2011-04-25 16:49:00 · 3544 阅读 · 1 评论 -
改进粒子系统-动态编译Shader
动态决定需要编译的FX代码 请教了几个朋友,最后决定用使用FX支持的宏定义解决这个问题。 根据粒子使用的发射器和效果器定义不同的宏,在FX文件中通过判断相应的宏是否定义(#ifdef…#endif)来决定是否编译某段代码。 FX代码如下: struct VS_INPUT{ float3 Position转载 2010-09-12 20:28:00 · 2250 阅读 · 0 评论 -
特效系统优化
http://blog.youkuaiyun.com/leo1981816/article/details/5874974 这几天在做特效系统的优化,稍有些心得,分享一下。 首先要讨论的是优化层次,然后再说说优化策略。 游戏这个东西是程序美术策划共同努力工作的结果,所以优化再更宏观的角度来看不只是程序的问题。在具体工作中经常会出现,美术作了一个特别牛鼻的特效,效果及其绚丽,但转载 2012-09-02 04:43:13 · 1153 阅读 · 0 评论 -
OpenGL 性能优化
作者: Yang Jian (jyang@cad.zju.edu.cn) 日期: 2009-05-04 本文从硬件体系结构、状态机、光照、纹理、顶点数组、LOD、Cull等方面分析了如何优化 OpenGL 程序的性能。 OpenGL状态机(State Machine)OpenGL状态机的目前只有1.1版本,也是最经典的,大家可以参考下述链接:ftp://ftp.转载 2010-04-01 12:51:00 · 2785 阅读 · 0 评论 -
阐述C++编译器变量进行优化说明
在大多数情况下,把变量缓存在寄存器中是一个非常有价值的优化方法,如果不用的话很可惜。C++编译器提供了显式禁用这种缓存优化的机会。如果你声明变量是使用了volatile修饰符,编译器就不会把这个变量缓存在寄存器里——每次访问都将去存取变量在内存中的实际位置。防止了C++编译器对所修饰的变量进行优化。主要应用于多线程编程。volatile 可以用于修饰原生类型也可用于自定义类型。volatile转载 2011-04-04 18:31:00 · 2015 阅读 · 0 评论 -
3D图形渲染通道负载优化的几种方法
3D图形渲染通道负载优化的几种方法 一般来说, 定位渲染通道瓶颈的方法就是改变渲染通道每个步骤的工作量, 如果吞吐量也改变了, 那个步骤就是瓶颈. 找到了瓶颈就要想办法消除瓶颈, 可以减少该步骤的工作量, 增加其他步骤的工作量. 一般在光栅化之前的瓶颈称作”transform bound”, 三角形设置处理后的瓶颈称作”fill bound”转载 2012-07-06 17:24:33 · 1550 阅读 · 0 评论 -
渲染优化 lock unlock
昨天参加了公司组织的nvdia的培训,讲了一些关于D3D的优化和可能的瓶颈所在,具体的条目就不说了,这里说一些关于资源的Lock和Unlock,以及我在GL下的测试。 老师讲到向Draw*这类函数是将其指令放入指令队列,带填满后或者强制刷新时交给显卡去画,也就是说它并不是即时的,而像对资源的Lock和Unlock确是即时的操作,而且cpu和gpu是并行计算的,当lock的资源正是当前gpu转载 2012-09-02 04:40:36 · 1276 阅读 · 0 评论 -
特效的批量绘制
http://blog.youkuaiyun.com/javazjh/article/details/6015056 特效的批量绘制张嘉华(newzjh@126.com)特效系统是游戏中的一个重要组成部分,在场景布谷,角色技能等有广泛应用。一个特效往往包含多种多样的组成元素:粒子系统,公告板,音效,图元轨迹,模型特效,镜头滤镜/震动/模糊,动态光源等。其中以粒子系统和公告板在场景中用转载 2012-09-02 04:54:41 · 1821 阅读 · 0 评论 -
一个提高渲染效率的小技巧
在3D游戏中,UI占了很大一部分窗口元素,比如魔兽争霸1024*768屏幕设置,除去底部控制台及顶部资源面板,场景渲染区域只有1024*570。要知道对于如今的3D游戏,越来越多的资源使用normalmap,越来越复杂的着色器代码,能够避免四分之一的ui窗口区域无效渲染,带来的性能提升余地是很大的。 正常的渲染次序是:RenderScene();RenderUI()。被UI界面遮转载 2012-09-02 15:13:15 · 1594 阅读 · 0 评论 -
渲染状态管理
文档简介: 提高3D图形程序的性能是个很大的课题。图形程序的优化大致可以分成两大任务,一是要有好的场景管理程序,能快速剔除不可见多边形,并根据对象距相机远近选择合适的细节(LOD);二是要有好的渲染程序,能快速渲染送入渲染管线的可见多边形。 我们知道,使用OpenGL或Direct3D渲染图形时,首先要设置渲染状态,渲染状态用于控制渲染器的渲染行为。应用程序可以通过改变渲染状态转载 2012-09-02 15:18:34 · 1557 阅读 · 0 评论 -
高效率3D图形程序中的骨骼
骨骼 — 皮肤动画技术是3D动画领域的一项比较高级的技术。由于其生动、逼真的效果,在影视制作、动态仿真等领域起着重要的作用。只有使用骨骼 — 皮肤技术,才能制作出广播级的动画作品。 顾名思义,骨骼 — 皮肤动画的含义是使用一系列的骨骼去带动一张皮肤进行运动。其特点是: 第一,作为皮肤的网格是一个整体,而不是分成区段的。 在简单的区段动画中,一个复杂的物体是由许多“坚硬”的段组成的转载 2012-09-03 06:32:40 · 1283 阅读 · 0 评论 -
DirectX 9高效渲染之利用Constant构建渲染数据
http://www.cppblog.com/sunicdavy/archive/2010/07/27/121394.html 偶然一次查看RenderMonkey例子中的Particle System.rfx 的 FireParticleSystem 中发现了一种提高DX9渲染效率的设计方法这里仅列出Vertex Shader参考: 1: float4转载 2012-09-07 06:56:04 · 1994 阅读 · 0 评论 -
增强骨骼动画系统的几个要点
要在游戏中用到强大而有扩展性的骨骼动画,有很多注意点.首先,我们得弃用CPU蒙皮, 虽然兼容性好,但是面对现今多核但并不提高单核速率的情况下,GPU还是王道.而且GPU蒙皮代码可能更简单,不过也有一点小缺点, 对于小引擎来说,Shader必须给静态模型和骨骼动画模型写两套.其次我们需要加强一个SubSkin的骨骼支持数量. 骨骼动画上的每个SubSkin都是一次Draw, 但是按照传统骨骼转载 2012-09-07 07:04:44 · 1575 阅读 · 0 评论 -
提高Shader Model 2.0 蒙皮骨骼动画的骨骼限制
传统的蒙皮骨骼动画混合方法易于理解,但是在SM 2.0的256常量限制下,骨骼数保守计算最多50根骨头,因此对美术的工作流程以及模型渲染方法造成了很大的障碍float4x4 matBoneArray[40]; // 这是传输的瓶颈 VS_OUTPUT vs_main( SkinnedVS_INPUT In ){ VS_OUTPUT Out = (VS_OUTP转载 2012-09-07 07:07:07 · 2129 阅读 · 0 评论 -
IW4&COD技术简析与不同公司游戏优化思路
作者:零zXr0http://hi.baidu.com/h0nker/profile文章:http://hi.baidu.com/h0nker/blog/item/e4d9102d6d86c23f359bf75d.html只写了一天,毕竟不是我关注的重点,预计不会有太大更新,稍后将根据BFBC2具体情况更新2月初以来就没更新的寒霜引擎介绍文,将分为两段,寒霜1与寒霜2转载 2012-10-02 09:07:39 · 3810 阅读 · 0 评论 -
使用非2次方幂的图像纹理的问题
图像使用2次方是很讨厌的问题,不在技术难度上,而在技术妥协上.实际上要求美工作出2次方纹理,并且整张图的空间利用率要高,是很难的.当有些策划丢过来奇奇怪怪的尺寸的图像,我都要吐血,当知道2n次方限制后,他们把图像尺寸扩大一下,再丢给我空余大量空白的2n次方纹理,再吐血.玻璃渣资源里标准的2n次方人物纹理,图像挤的满满的,每个身体部位纹理还是一个矩形,利用率之高不得不令人佩服,然而这对美工要转载 2012-11-08 20:09:36 · 9561 阅读 · 0 评论