Articles of 硬件加速

游戏(X-Plane)启动/启动时间/性能

我为我的问题使用X-Plane,但它也可能涉及到其他飞行模拟器或模拟游戏。 当开发一个插件最让我困扰的是应用程序的启动时间来testing我的插件function,所以我想知道如何提高模拟器的启动速度。 首先,我删除了所有额外的风景,并将加载的文件减到最小,这给了我34秒的启动时间,这已经相当快了。 为了进一步提高时间,我认为从内存中运行整个应用程序是有意义的,我安装了ubuntu 64位,并在内存(ram-disk)中创建了一个2GB的tempfs文件系统。 当从这个内存文件系统启动x-plane时,它仍然需要30秒。 任何人都可以解释什么应用程序在启动过程中需要这么多的处理时间? 我假设对象和环境的graphics位图被压缩在磁盘上,因此它们必须先在内存中解压缩,然后才能在opengl中使用。 这将解释启动时间。 如果确实需要首先对位图进行解压缩,那么通过使用多核可以提高时间? 如果应用程序是multithreading的,并且有四个内核,那么时间将被四分之一还是在GPU上执行此处理? 任何可以帮助我更好地理解计算机游戏启动过程的解释都是非常值得赞赏的,因为我有兴趣提高系统的整体性能,因此我需要更好地理解瓶颈(RAM,CPU,GPU,磁盘(SSD / Raid),操作系统,库,…)。

移动一个精灵加速度计

我试图在iPhone的cocos2d中移动一个CCSprite(在这个例子中是“播放器”(应用程序处于横向模式),我该如何做到这一点?我一直无法做到这一点。 -(void)accelerometer:(UIAccelerometer *)accelerometer didAccelerate:(UIAcceleration *)acceleration { player.position.x = acceleration.x * 10; NSLog(@"Accelerometer x value is %f\n", acceleration.x); }

针对沉浸式/非休闲游戏的跨浏览器跨平台networking支持

我听说过很多对游戏有用的插件/浏览器技术,但是我没有深入其中,因为我认为全面支持并不在那里。 全向支持是指所有浏览器和所有操作系统。 由于我们最近有很多新的游戏特定的插件popup(例如Unity),新的Web标准popup(例如WebGL),现有标准在IE(例如SVG)中获得更好的支持,我想知道这是否已经改变。 对于制作身临其境的游戏有三个基本要求: 稳固的中低音video/audio支持(2D和3D都很有趣) 鼠标捕获 全屏 那里有支持所有这三种技术的技术,即跨平台和跨浏览器(包括所有大浏览器)吗? 标准化的解决scheme是可取的,但基于插件的解决scheme是可以的,只要他们支持免费或非常便宜的开发。 编辑 我意识到我提出了我的问题,“有没有这样的技术”。 我其实对这样的技术感兴趣 如果只有一个,那么列出其他技术,缺less什么,什么时候可能到达那里,可能还是有用的。

我可以使用哪些技术在OpenGL中更高效地渲染大量对象?

你可以把我的应用程序想象成一个非常大的球棍图(或图)。 有时候,这个graphics可能变得非常大,元素的数量甚至超过了屏幕上的像素。 目前,我只是将所有纹理(如GL_POINTS )和行传递给使用VBO的graphics卡。 当元素的数量超过了像素的数量,这是做这个最有效的方法吗? 还是应该在将所有内容交给GPU之前在CPU上进行一些计算? 如果重要,我使用GL_DEPTH_TEST和GL_ALPHA_TEST 。 我做了一些alpha混合,但可能不足以造成巨大的性能差异。 我的场景有时可能是静态的,但是用户可以控制一个典型的弧形球照相机,并且可以平移,旋转或缩放。 在这些操作过程中,性能下降是显而易见的。

从立即模式切换到VBOs,游戏运行速度较慢

试图提高我的c + +,OpenGL,SDL游戏的绘制性能。 回到学校,我们大多学到了即时模式,这就是我的绘图最初如何实现的。 当我开始在线阅读关于提高性能的信息时,我阅读了一些关于VBO的内容,以及它们如何更好地使用显卡内存等,所以我花了几个晚上的时间转换成它们。 当我testing游戏时,实际上运行速度较慢(绘制方法从〜7到〜10)。 我明确做错了吗? 还是在某些情况下维也纳组织只是更有效率? 这里是我添加VBOs之后镶嵌多边形的类(我的游戏在3D世界中绘制了很多扁平的二维形状,有点像纸质风格) #include "Tesselator.h" Tesselator::Tesselator(std::vector<b2Vec2> vertices, Gradient* gradient) { this->vertices = vertices; this->gradient = gradient; tesselator = gluNewTess(); gluTessCallback(tesselator, GLU_TESS_BEGIN_DATA, (void(CALLBACK*)())beginCallback); gluTessCallback(tesselator, GLU_TESS_VERTEX_DATA, (void(CALLBACK*)())vertexCallback); gluTessCallback(tesselator, GLU_TESS_END, (void(CALLBACK*)())endCallback); int vertcount = (int)vertices.size(); GLdouble vertarray[vertcount][3]; for (int i = 0; i < vertices.size(); i++) { vertarray[i][0] = vertices[i].x; vertarray[i][1] = […]

R32F alpha混合的后备

我正在渲染一个R32F格式的纹理值的聚合,使用alpha混合来完成求和操作。 所有硬件都不支持R32F alpha混合。 当硬件不支持混合时,我有什么样的回退选项来完成添加?

为什么我的车轮不能像我的车一样速度移动?

我需要帮助,为我的游戏设置一些轮子旋转。 我的车轮比我的车的加速度快了3倍。 另外,我不知道为什么我的车行驶的很慢,刹车不起作用。 我把检查员的东西设得太高了吗? 我认为这可能与我的轮盘脚本有关。 以下是我的问题www.youtube.com/watch?v=0YI50cJ5X4Q&feature=youtu.be的video using System.Collections; using UnityEngine; public class Car : MonoBehaviour { public float maxTorque = 5000f; public float speed = 5000f; public Transform centerofMass; public WheelCollider[] wheelColliders = new WheelCollider[4]; public Transform[] tireMeshes = new Transform[4]; private Rigidbody m_rigidBody; void Start() { m_rigidBody = GetComponent<Rigidbody>(); m_rigidBody.centerOfMass = centerofMass.localPosition; } void […]

我应该使用ASTC吗?

所以我读了ASTC,它应该比S3TC更受欢迎。 我所关心的是硬件支持的现状。 根据维基百科,每个主要的GPU制造商都支持ASTC,但AMD没有在那里列出。 有人知道为什么吗? 这很奇怪,因为ASTC据说是由ARM和AMD开发的,所以他们为什么不实施呢? 给一些上下文: – 我只是学习graphics编程(OpenGL) – 我正在开发Linux桌面平台 我基本上试图围绕纹理压缩和所有可用的压缩编解码器。 如果你能推荐一些关于纹理压缩的好资源,那也是很好的!

最佳的像素读回策略

我需要渲染某些场景,并将整个图像读回到主内存中进行进一步的处理,这不适合重写到CUDA的着色器,并保存到磁盘。 我已经search了这个,似乎大多数video卡将加速渲染,但回读将是非常缓慢的。 经过一番研究后,我才发现这张卡片提到“硬件加速像素回读” 另一种方法是做软件渲染,不存在回读问题,但是渲染性能不好。 可能,我将不得不实施两者,以便能够find最佳的权衡,但我的问题是关于硬件方面我还有什么其他的select; 我了解Quadro是建模和devise师细分市场,这正是这个应用程序的客户端目标,这是否意味着我不可能在其他video卡行中find更好的像素回读性能? 即特斯拉或费米,甚至没有video输出btw

我如何在C#中创建自己的GPU加速graphicsAPI?

我在C#中创建2D游戏引擎,我需要一些graphicsAPI,以便用户可以绘制精灵或凸vector形状。 我试图使用GDI + 。 但是我发现GDI +不是GPU加速的,而且速度太慢。 XNA (微软的游戏开发工具)和GPU加速。 所以我做了XNA和GDI +的性能比较。 XNA在GDI +的〜0.05 ms内绘制2048×2048 px sprite大约需要400-500 ms。 如何开始? 如何使自己的graphicsAPI(如DirectX / OpenGL)。