Articles of 电脑

如何在OpenGL 4.2中启用几何着色器?

我将基于Direct3D的引擎移植到OpenGL,并使用几何着色器来渲染文本字符(基本上是纹理广告牌)。 D3D版本可以正常工作,但是在OpenGL模式下,屏幕中心只有一个闪烁点。 看起来,几何着色器阶段似乎没有启用(在AMD GPUPerfStudio中,表示GS阶段的框是灰色的)。 我tripple – 检查OpenGL后端和着色器代码,但无法find任何错误。 也许,我错过了一些东西。 以下是相关着色器的源代码: 顶点着色器: in vec4 in_xy_wh; in vec4 in_tl_br; // UVs for top left and bottom right corners out vec4 v_xy_wh; out vec4 v_tl_br; void main() { v_xy_wh = in_xy_wh; v_tl_br = in_tl_br; } 几何着色器: layout(points) in; layout(triangle_strip, max_vertices=4) out; in vec4 v_xy_wh[]; in vec4 v_tl_br[]; // UVs […]

GPU使用率低于90%=糟糕的游戏效果

好吧,这不完全是一个“发展”的问题,但高度相关。 当我玩游戏时,我经常看性能数字,如CPU使用率,GPU使用率,内存使用情况等。 让我们来谈谈PC上的GPU使用情况。 这里是我的观察:有两种游戏: MAX GPU使用率:这些游戏产生60 FPS 或 90%+ GPU使用率。 POOR GPU的使用情况:这些游戏同时产生低于 60 FPS 和 不到 90%的GPU使用率 MAX GPU的例子(试图确保我的想法被理解为好): 50 FPS,100%GPU 60 FPS,90%的GPU 60 FPS,50%GPU(也是合法的) POOR GPU示例: 30 FPS,60%GPU(FPS限制为60) 40 FPS,50%的GPU MAX GPU游戏似乎有效地使用GPU来提供最佳性能,而POOR GPU游戏由于某种原因而成为瓶颈。 U得到几个FPS,低GPU负载,CPU核心没有达到100%的负载。 我多次查看并重新检查了我的电脑,但没有看到任何可能使某些游戏performance不佳的特定问题,除此之外,其他游戏达到90%以上的GPU使用率并没有问题。 我也不是唯一观察过这种行为的人。 所以问题是: 贫乏的GPU游戏是有目的的,或者是因为缺乏努力而不能很好地优化。 对或错? 另外,看起来MAX GPU游戏可能是multithreading的? 我怀疑糟糕的游戏是这样的:使用主线程 loop update; draw; 而最大GPU游戏是这样的:使用两个线程 loop start-update in another thread; start-draw; wait & […]

如何为我的PC / Linux / Mac游戏创建自定义安装程序?

如何创建集成产品密钥解锁function的定制安装程序,或者告知经销商客户能够像BMT Mirco支付处理器那样访问产品。 或者可能如何连接我的BMT Micro管理解锁产品以将其安装到自定义安装程序中。 我希望它有一个像Inno Setup或Clickteam Install Creator这样的简单设置,并且包含自定义的头部/侧面横幅。

如何确保跨多个graphics卡(甚至是驱动程序版本)的一致体验?

所以我正在用OpenGL和SDL编写一个简单的2D游戏,并且在窗口模式下运行时出现了这个问题(即使我明确要求SDL_SetVideoMode使用双缓冲)。 没有太多担心,因为大部分时间游戏抓住整个屏幕,窗口模式只是为了debugging。 无论如何,昨天我更新了我的nVidia驱动程序和撕裂消失,游戏运行平稳,窗口模式也看起来不错。 我可以看到graphics驱动程序中可能存在的问题,但这会产生一个问题。 显然,专业游戏开发者必须处理很多不同的硬件/软件configuration。 他们使用什么技术来确保游戏在不同的graphics卡上甚至同一型号的graphics卡上看起来大致相同,但具有不同的驱动程序版本?

Direct3D中的非阻塞VSync

我有一个使用PRESENTATION_INTERVAL_ONE实现的Direct3D应用程序。 可惜,它的阻塞和吃我的CPU等待着。 我最终search了光栅扫描(BitBlt)解决scheme,来自互联网的示例代码,但是其中没有一个实际运行良好 – 没有在Present礼物之前执行确切的时间。 题 所以,理想的解决scheme是使用PRESENTATION_INTERVAL_ONE(或者如果它不可能 – IMMEDIATE),调用一个函数 // blabla code waitForVsync(); //loop here with sleeps or whatever, freeing my CPU ()->Present(); //just in time, no blocking wait, yay! 在返回的时候,我称之为Present,也就是说,在物理顶部扫描线之前,可以说1ms为_ONE和0ms为_IMMEDIATE。 我知道我在2011年要求很多,不希望有解决办法,因为微软在这方面也没有改进。 为了澄清这个问题,我提供了一个更详细的问题分析的链接: http : //www.virtualdub.org/blog/pivot/entry.php?id=157

如何在没有编辑器的情况下开始修改游戏?

我经常遇到非常令人印象深刻的电脑游戏MOD,没有官方的编辑器,其他开发工具或其公开的源代码。 (例如,以Just Cause 2为例, 这个惊人的多人模组。 你怎么去创造这种游戏的MODS? 我不是在谈论replace奇怪的纹理或3D模型 – 这种事情似乎相当容易,因为有些工具可以将它们从游戏文件中撬出来并放回到游戏文件中,但是更多的是添加游戏行为。 (调整设置文件也不计算在内。) 请注意,我不是问“如何创建一个mod”,我只是想知道从哪里开始或去哪里学习。

为什么PC游戏会有一定数量的分辨率?

游戏select在全屏模式下使用一定数量的分辨率有一个明显的原因 – 一台机器只能访问自己的一组分辨率,并且两组的交集决定了游戏可以运行的分辨率。 但是,即使在窗口模式下,用户通常也仅限于某些分辨率。 游戏可能会select以这种方式限制窗口的大小,而不是让用户dynamic调整窗口的大小?

桌面PC / Mac游戏的最小目标分辨率?

让我们假设我今天开始一个新的PC / Mac 桌面 (不是上网本)游戏,将需要一年的时间公开发布,这是很多关于graphics细节(不是真实的,只是graphics“丰富”)。 屏幕分辨率越高越好,但我以适应屏幕(3D,屏幕空间相对ui等)的方式构建游戏。 不过,我仍然需要一个最小的分辨率,以确保我的用户界面和文本在低分辨率下仍然清晰。 目前我假设1024×768是真正的较低分辨率的任何这样的游戏可以要求。 但是随着时间的推移,我想我可能是错的了,如果从今天开始的话,一个具有视觉细节的游戏应该把更高分辨率作为最低分辨率? 假设Steam用户将成为目标受众,我看了蒸汽硬件调查以获得一个想法,但是它不谈论正在玩的游戏的分辨率,而只是关于桌面分辨率。 我假设大多数玩家将玩的大多数游戏的分辨率低于桌面分辨率…?

是什么让瞄准PC的第一人称射手感觉良好?

我喜欢这个问题: 瞄准控制台第一人称射击者感觉好不好? 所以这里是PC(而不是一个愚蠢的,因为鼠标是一个模拟棒非常不同) 在使用鼠标进行瞄准时,您可能已经注意到有些游戏比其他游戏“感觉更好”。 这是为什么? 一些最好的引擎是最初的半条命1引擎和Quake 3引擎。 最大的问题是什么? Laggyinput响应?

为什么多人游戏的控制台版本比PC版本支持更less的玩家?

来源http://answers.yahoo.com/question/index?qid=20111205162848AAb1sl9 PC上的64位玩家(32vs32) 更大的地图与更多的车辆和建筑物。 游戏机上的24(12vs12)(这是计划有32名玩家的限制,但后来减less到24)。 为什么控制台版本最多有24个玩家? 与硬件相关吗? 其中一个原因是玩家可以自己主持游戏。 如果这真的是非常伤心,你不能玩32×32,因为一两个人想主办游戏。