Questions tagged «graphics»

一个非常通用的术语,指游戏的视觉部分。尽量避免无关的用法,如果可能的话,请为您正在使用的特定图形类型(2D,3D),API,框架或库添加标签。

3
如何渲染无限的宇宙?
我很好奇游戏开发行业中渲染3d Universe的最佳做法是什么? 更加具体: 数据点是给定的,并且是静态的。每个点都有位置,颜色和大小。 整个数据集比可用内存大得多。 用户应该能够“放大”以立即看到更大的图片; 最幼稚的方法是将宇宙拆分为多维数据集并仅渲染可见的内容。我不确定在这种情况下应如何实现“缩小”。是否应该为每个可能的缩放级别预先计算多维数据集?也许有更好的方法? 我正在寻找技术不可知的解决方案。


5
网格上的布尔运算
给每个网格一组顶点和三角形。有谁知道一种算法,或一个寻找的地方(我先尝试谷歌,但没有找到一个好的开始的地方)在所述网格上执行布尔运算,并为生成的网格获取一组顶点和三角形?特别令人感兴趣的是减法和联合。 图片示例:http : //www.rhino3d.com/4/help/Commands/Booleans.htm

5
如果我想独立学习游戏图形设计,该从哪里开始?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 6年前关闭。 我想学习如何创建自定义图形,而不是免费使用可用资源。但是我一直在寻找有关一般如何从2D游戏设计入手的文章或教程,而我似乎找不到一个好的起点-书本或其他。我通常会为那些在平面设计方面进行过正规研究(高级的东西)的人提供各种资源,但是我不会在一段时间内(如果有的话)拥有大量的正规研究资源。另一方面,我找到了用于学习编程方面资源的资源,而不是用于学习如何创建要处理的图形的资源。 有什么好的资源可用于学习面向游戏的图形设计?特别是2D,这是我最感兴趣的2D,但也欢迎3D。
15 2d  3d  graphics  2.5d 

1
多次下采样有好处吗?
所以我遇到了这个站点,您可以在第一和第二段中看到以下几行: 为了获得粗略而简单的效果,请将场景的明亮部分(例如光源)绘制到FBO中,然后使用GL_LINEAR缩小几次对其进行下采样。对于最终渲染,只需将原始场景与降采样的FBO结合即可。 在下面的示例中,原始场景为128 x 128,并被下采样3次。这需要4个framebuffer对象。原始场景显示在左上方,最终渲染显示在右上方。 有什么原因我应该多次降采样(128-> 64-> 32-> 16)而不是一次降采样(128-> 16)? 如果您向下滚动更多,他们甚至将其下采样9次。(128-> ...-> 16-> 128-> ...-> 16->依此类推)。为什么不这样做(128-> 16-> 128-> 16->等等)?
14 opengl  graphics  bloom 

3
如何缩小像素画?
有很多算法可以放大像素画。(我喜欢HQX,个人)。但是否有任何显着的算法,它的规模下来?我的游戏的设计分辨率为1280x720,但如果以较低的分辨率播放,我仍然希望它看起来不错。 大多数像素艺术讨论都围绕320x200或640x480升级到控制台模拟器中使用,但我想知道像Monkey Island Remake这样的现代2D游戏在较低分辨率下会看起来不错吗? 当然,可以忽略拥有多种资产版本的选择(即mipmapping)。

5
他们如何使屏幕在Dangerous Dave中移动?
我小时候就用BASIC进行游戏,并且对1988年用C ++编写的Dangerous Dave版本中的图形处理方式感到好奇。特别是因为这些天他们没有任何有价值的图形包。还记得当戴夫到达屏幕边缘时,整个屏幕图形曾经以向后移动的方式向左移动吗?我记得读过罗梅罗(Romero)使用一种特殊的技术来做到这一点。我一直想创建像Dave这样的东西,并且想知道 他们为Dave使用了哪些图形包/方法? 以及如何使整个屏幕图形像他们一样移动?
14 graphics 

2
尽管使用了Time.deltaTime,但移动似乎与帧速率有关。
我有以下代码来计算在Unity中移动游戏对象所需的转换LateUpdate。据我了解,我对的使用Time.deltaTime应使最终的翻译帧速率独立(请注意CollisionDetection.Move(),仅用于进行射线广播)。 public IMovementModel Move(IMovementModel model) { this.model = model; targetSpeed = (model.HorizontalInput + model.VerticalInput) * model.Speed; model.CurrentSpeed = accelerateSpeed(model.CurrentSpeed, targetSpeed, model.Accel); if (model.IsJumping) { model.AmountToMove = new Vector3(model.AmountToMove.x, model.AmountToMove.y); } else if (CollisionDetection.OnGround) { model.AmountToMove = new Vector3(model.AmountToMove.x, 0); } model.FlipAnim = flipAnimation(targetSpeed); // If we're ignoring gravity, then just …

4
如何用粒子实现软边缘区域
我的游戏是使用Phaser创建的,但问题本身与引擎无关。 在我的游戏中,我有几个环境,本质上是玩家角色可以进入并受到其影响的多边形区域。例如,冰,火,毒药等。这些区域的图形元素是颜色填充的多边形区域本身,以及适当类型的粒子(在此示例中为冰碎片)。这就是我目前正在实现的方式-使用覆盖有粒子图案的tileprite的多边形蒙版: 硬边看起来不好。我想通过做两件事来改进:1.使多边形填充区域具有柔和的边缘,并融合到背景中。2.让一些碎片离开多边形区域,这样它们就不会在中间切开并且该区域没有直线 例如(样机): 我认为模糊多边形可以实现1,但是我不确定如何处理2。 您将如何实施呢?

3
重建阴影效果
我会简短。如何实现下图所示的效果?实时进行是否可行?它看起来看似简单,但事实并非如此。我可以搜索任何关键字以获取有关对着色器进行编程以实现此外观的更多信息吗?谢谢。

5
如何在Unity3d中绘制轮廓?
我正在尝试突出显示任意高度的矩形。我认为最简单的方法是创建一个单独的“盒子”游戏对象来勾勒出矩形。 我同时尝试了MeshRenderer +透明纹理和LineRenderer来勾勒出矩形的四个点。两者都不是很令人满意。 (线渲染器在中间,缩放的立方体在右侧) 解决这个问题的正确方法是什么?我正在尝试获得类似于左侧矩形的东西-通过选择的四个点来固定宽度的简单周长。
13 unity  graphics 

3
旧电视视频游戏在什么平台上开发?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 我非常想知道电视视频游戏(我们从小就玩过)是如何开发的以及在哪个平台上开发的。 我知道如何为移动设备,Windows PC和Mac开发游戏,但是(当时)Contra,Duck Hunt和所有这些游戏是怎么开发的。由于它们具有较高的图形和大量的阶段。那么,他们如何在如此小的环境和较低的配置平台上开发游戏呢?

2
逼真的金属着色器
如何创建一个好的金属着色器? 对于不同的金属,说或多或少地腐蚀/生锈等等。 我知道与普通材料的不同之处在于,金属应该使镜面反射光“着色”,但是例如当我用金做到这一点时,它看起来只是“黄色”,而根本不是金属。 任何帮助表示赞赏!

4
如何处理2D游戏中的任意大图像?
题 当您拥有使用非常大图像(大于硬件可以支持的图像)的2D游戏时,该怎么办?也许对这个问题有一些有趣的解决方案,这在我之前从未发生过。 我基本上是在从事某种图形冒险游戏的制作。我的目标受众是几乎没有游戏开发(和编程)经验的人。如果您使用的是这样的应用程序,是不是更希望它在内部处理问题而不是告诉您“拆分图像”? 语境 众所周知,图形卡对其可使用的纹理大小施加了一组限制。例如,使用XNA时,取决于您选择的配置文件,最大纹理大小被限制为2048或4096像素。 通常,在2D游戏中这不会带来太大问题,因为大多数游戏都具有可以由较小的单个块(例如,图块或变形的精灵)构建的关卡。 但是,请考虑一些经典的点按式图形冒险游戏(例如Monkey Island)。图形冒险游戏中的房间通常是整体设计的,很少或没有可重复的部分,就像画家在风景上一样。或像《最终幻想7》这样的游戏使用了大型的预渲染背景。 这些房间中的一些可能会变得很大,经常跨越三个或更多屏幕宽度。现在,如果我们在现代高清游戏的背景下考虑这些背景,它们将很容易超过最大支持的纹理大小。 现在,解决此问题的明显方法是将背景分成适合需求的较小部分,并排绘制。但是,您(或您的艺术家)是否应该成为拆分所有纹理的人? 如果您使用的是高级API,它是否应该准备好应对这种情况并在内部进行纹理的拆分和组装(作为XNA的内容管道等预处理程序或在运行时进行)? 编辑 从XNA实现的角度来看,这就是我的想法。 我的2D引擎只需要Texture2D功能的很小一部分。我实际上可以将其简化为以下接口: public interface ITexture { int Height { get; } int Width { get; } void Draw(SpriteBatch spriteBatch, Vector2 position, Rectangle? source, Color color, float rotation, Vector2 origin, Vector2 scale, SpriteEffects effects, float layerDepth); } 我使用的唯一依赖Texture2D的外部方法是SpriteBatch.Draw(),因此我可以通过添加扩展方法在它们之间建立桥梁: public …
13 xna  c#  2d  graphics  textures 

3
如何使用图形管线基于密度函数渲染体积数据?
两种图形API(OpenGL和DirectX)都设计了明确定义的管道,其中几个阶段都可以编程。这些可编程阶段需要获取固定的最小数据量,并应在其上进行明确定义的操作范围,并输出一些已定义的最小输出,以便可以将数据正确地传递到下一个阶段。似乎这些流水线被设计为仅使用有限数量的几何数据类型,对于D3D和OGL而言,它们都是顶点数据和纹理坐标。 但是,如果我打算制作的应用程序在某种情况下不使用顶点(甚至是体素)来表示其几何数据,并且不完全进行变换或投影,栅格化或插值等操作,则API的局限性否则管道会使事情变得困难。 那么,是否有一种方法可以改变图形管道,从而使每个阶段对数据执行的功能以及每个阶段输出的数据类型都对我有利?如果没有,那么有没有办法我可以使用“原始” API函数来构建自己的管道?如果没有,请说明为什么不可能。 编辑:我的应用程序使用密度函数来表示几何。该函数在空间的每个点都有一个值。我将相机的视锥台分为3d网格,每个块可以投影为一个像素。在每个块上,我集成密度函数,并检查其值是否大于要求的值。如果是,则假定该块中存在某些东西,并且渲染与该块相对应的像素。因此,现在在渲染器中,我希望将函数(用字符串表示)传递给图形硬件,而不是传递顶点缓冲区中的顶点数据。这也意味着顶点着色器将没有顶点可以转换为同质的剪贴空间,并且片段着色器不会获取像素信息。取而代之的是,现在大多数查找和评估都针对每个像素进行。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.