Questions tagged «textures»

纹理映射过程中使用的位图(光栅图像)。

7
为什么纹理总是平方为2的幂?如果不是,那该怎么办?
为什么游戏中纹理的分辨率始终是2的幂(128x128、256x256、512x512、1024x1024等)?保存游戏的文件大小并使其纹理完全适合UV解包模型是否明智? 如果纹理不是2的幂,会发生什么? 具有256x512或512x1024之类的纹理会不正确吗?还是会引起非二次幂纹理可能引起的问题?
53 textures 


5
如何避免纹理图集中出现纹理渗漏?
在我的游戏中,有一个由方块构成的Minecraft类地形。我从体素数据生成顶点缓冲区,并使用纹理图集显示不同块的外观: 问题在于,远方立方体的纹理会与纹理图集中的相邻图块进行插值。这会导致多维数据集之间出现颜色错误的线条(您可能需要以完整尺寸查看下面的屏幕截图,以查看图形缺陷): 现在,我使用这些插值设置,但尝试了每种组合,即使GL_NEAREST没有mipmapping也无法提供更好的结果。 glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_LINEAR_MIPMAP_NEAREST); glTexParameteri(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST); 我还尝试在纹理坐标中添加偏移量,以选择较小的瓷砖区域,但是由于不想要的效果取决于到相机的距离,因此无法完全解决问题。在很远的距离,条纹仍然会出现。 我该如何解决这种纹理渗出?由于使用纹理图集是流行的技术,因此可能有一种通用的方法。遗憾的是,由于注释中解释的某些原因,我无法更改为其他纹理或纹理阵列。

3
为什么经常在球体模型上表示游戏纹理的示例?
我最近开始与Unity合作,并在我打算最终构建的游戏中寻找背景纹理(城堡墙和类似碎片)。我注意到纹理通常表示为球形,例如在此示例图像中: 例如,为什么纹理图案没有显示为简单的正方形?我想这背后的原因与映射到3d曲面有关,但我不确定,因此我想在此处进行检查。 为什么在示例和预览中经常以球形来表示纹理?
45 textures 

1
AAA游戏如何在色调映射着色器中使用此纹理?
我发现《战地风云3》和《圣徒之街三号》在其最终的色调映射阶段都使用了这种纹理。任何人都可以共享指向有关如何使用此纹理的文章的链接吗? 更新:由于网上几乎没有任何实现颜色分级的示例,我将发布XNA 4.0的快速而肮脏的示例。除了从头开始在GPU上构建默认的2d颜色图,将其内容复制到CPU上的3d纹理并使用答案中提供的文章中的着色器代码执行实际的颜色校正外,此操作什么都不做。 XNA 4.0色彩校正样本 如果您想知道该怎么办,请看这里: http://the-witness.net/news/2012/08/fun-with-in-engine-color-grading/ 简而言之,作者在那里解释,您如何基本上可以使用顶部的默认颜色分级调色板来制作正常游戏图像的屏幕截图,在photoshop中执行屏幕截图颜色校正,将变形的颜色校正调色板剪切并将其复制到引擎中并具有颜色校正会自动应用于每个游戏场景。
43 textures  hlsl 

5
我应该使用大小不为2的幂的纹理吗?
在OpenGL和DirectX的早期,纹理大小要求是2的幂。这意味着浮点值的内插可以非常快地使用移位等方法完成。 从OpenGL 2.0开始(以及之前的扩展,通过扩展),已支持非二次幂纹理尺寸。 二次幂纹理在现代集成和离散GPU上是否具有性能优势?非二次方纹理有什么优势? 是否有大量台式机拥有支持非二次幂纹理的卡?

6
在OpenGL中创建复古样式的调色板交换效果
我正在开发类似Megaman的游戏,需要在运行时更改某些像素的颜色。供参考:在Megaman中,当您更改所选武器时,主角色的调色板会更改以反映所选武器。并非所有精灵的颜色都会改变,只有某些会改变。 由于程序员可以访问调色板以及像素和调色板索引之间的逻辑映射,因此这种效果在NES上很常见并且很容易实现。但是,在现代硬件上,这更具挑战性,因为调色板的概念并不相同。 我所有的纹理都是32位的,并且不使用调色板。 我知道有两种方法可以达到我想要的效果,但是我很好奇是否有更好的方法可以轻松实现此效果。我知道的两个选项是: 使用着色器并编写一些GLSL来执行“调色板交换”行为。 如果着色器不可用(例如,因为图形卡不支持着色器),则可以克隆“原始”纹理并生成具有预先应用的颜色更改的不同版本。 理想情况下,我想使用着色器,因为它看起来很简单,并且与重复纹理方法相反,几乎不需要其他工作。我担心复制纹理只是为了更改颜色而浪费了VRAM,我不应该为此担心吗? 编辑:我最终使用了可接受的答案的技术,这是我的着色器供参考。 uniform sampler2D texture; uniform sampler2D colorTable; uniform float paletteIndex; void main() { vec2 pos = gl_TexCoord[0].xy; vec4 color = texture2D(texture, pos); vec2 index = vec2(color.r + paletteIndex, 0); vec4 indexedColor = texture2D(colorTable, index); gl_FragColor = indexedColor; } 两种纹理都是32位的,一种纹理用作查找表,其中包含多个大小相同的调色板(在我的情况下为6种颜色)。我将源像素的红色通道用作颜色表的索引。这就像实现类似于Megaman的调色板交换一样具有魅力!

3
我怎样才能使爆炸粒子看起来好看?
我不是一个艺术家,但我正在尝试在2.5D游戏中制作体面的粒子效果。我正在复制Wii Play的“坦克”,但爆炸效果看起来还不太好。我不追求他们所拥有的确切风格,可能更真实,更幼稚。 我的粒子引擎仅在屏幕上绘制2D纹理,并支持每个粒子:起始位置,速度,重力(或任何加速度),空气阻力(拖动),包括alpha的颜色,起始尺寸,尺寸扩展率,寿命和淡出率。 在我的坦克爆炸中,我正在绘制约100个粒子,并且我一直在调整参数几天,以使外观看起来更好。所以我想知道,获得良好结果的一些技巧是什么?爆炸最重要的是什么? 有高质量的纹理? 有各种各样的纹理吗? 正确的颜色? 粒子的逼真的运动? 有很多很多的粒子,超过100个? 看看这张图片。我试图通过制造出能发射出来的粒子并在其后产生更多粒子来复制它。但是我的仍然不是那样。

4
什么是3D纹理?
Google让我失败了,我找不到任何有用的信息。所以也许GameDev可以:)。 什么是3D纹理? 什么时候使用? 绩效成本? 它们如何存储? 我有很多模糊的想法,但没有“确定的”定义。 任何对示例或教程的引用都将受到赞赏,尤其是在通过3D纹理渲染粒子系统中。
31 3d  textures 

4
Sprite和Texture有什么区别?
我要完成大学的一项任务,我的任务是讨论视频游戏中使用的纹理以及它们的演变方式。 我的主要问题是,使用精灵或使用其他纹理方法之间的根本区别是什么? 我自己做了一些研究,似乎倾向于将Sprites将图像存储在一个文件中,并且可以将其用于动画等。并且通常在较旧的视频游戏中使用,通常将Sprites作为其所有游戏视觉效果。现在,在现代游戏中,我相信随着技术的进步以及诸如凹凸贴图等其他纹理的出现,精灵将越来越少地被使用。尽管今天仍然使用精灵来容纳诸如健康栏或长距离纹理之类的功能。 但是,使用纹理而不是精灵的主要优点是什么?

3
团队如何防止覆盖源文件中的工作?[关闭]
关闭。这个问题是题外话。它当前不接受答案。 想改善这个问题吗? 更新问题,使它成为Game Development Stack Exchange 的主题。 4年前关闭。 在我看来,有一种可能性,例如由多个人同时处理游戏引擎时,如何防止覆盖? 假设开发者一在工作,Audio.cpp而开发者二也在工作Audio.cpp,这在大型团队中通常如何进行管理以应对覆盖?(换句话说,要阻止开发人员2打开文件,直到开发人员1完成)
26 project-management  version-control  teamwork  java  2d  collision-detection  vector  collision-resolution  unity  directx  directx11  directx10  xna  ios  monogame  windows-phone-8  xamarin  design-patterns  oop  xna  collision-detection  collision-resolution  bounding-boxes  rotation  collision-detection  mathematics  javascript  algorithm  separating-axis-theorem  xna  2d  monogame  image  xna  directx  graphics  performance  opengl  2d  3d  c++  directx11  unity  c#  scale  c#  xna  collision-detection  collision-resolution  leaderboards  scoring  glsl  srgb  tilemap  three.js  tiled  unity  physics  xml  dialog-tree  xna  c#  .net  opengl  lwjgl  vbo  physics  graphics  procedural-generation  simulations  water  opengl  java  textures  lwjgl  frame-buffer  unity  unity  2d  collision-detection  collision-resolution  trigonometry  java  android  libgdx  xna  c#  frame-rate  c++  unreal-4  procedural-generation  java  graphics  lwjgl  slick  c++  software-engineering 

4
UV和UVW映射到底是什么?
为了理解一些基本的3D概念,目前,我试图弄清楚纹理的实际工作方式。我知道UV和UVW映射是将2D纹理映射到3D对象的技术-维基百科告诉了我很多。我在Google上搜索了一些说明,但只发现了以我已经知道它是什么的教程。 根据我的理解,每个3D模型都是由点组成的,几个点会构成一张脸?每个点或面都具有一个辅助坐标,该辅助坐标映射到2D纹理中的ax / y位置吗?还是解包如何操纵模型? 另外,UVW中的W真正起什么作用,它提供了超过UV的作用?据我了解,W映射到Z坐标,但是在什么情况下对于相同的X / Y和不同的Z我将具有不同的纹理,Z零件不可见吗?还是我完全误解了?

2
为什么有些游戏使用某种抖动模式而不是传统的Alpha透明度?
最近,我看到一些3D游戏(例如:)GTA IV使用某种有序抖动来模拟透明度/ alpha。 多边形不像往常一样透明,而是呈现抖动纹理,该纹理从左到右逐渐切换以模拟透明度: 效果并非令人不愉快,但乍看之下却令人惊讶(相对于传统的alpha混合) 除了产生的视觉美学效果外,有些游戏是否有其他理由(更好的性能,节省的带宽或其他我没有想到的原因)? 我已经在网上搜索过,但找不到有关此技术的任何信息。

2
我通常一次可以绑定多少个纹理?
我正在开发一个游戏引擎,并且只能在现代(Shader Model 4+)硬件上工作。我认为,当我完成此工作时,这将不是一个不合理的要求。 我的问题是:现代图形卡上一次可以绑定多少个纹理?16就足够了。我可以期望大多数现代图形卡支持这种数量的纹理吗? 我的GTX 460似乎支持32,但是我不知道这是否代表大多数现代视频卡。

6
程序生成的纹理发生了什么?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 4年前关闭。 我记得一段时间以前,程序生成的纹理正变得非常重要,许多人/公司对它们带来了很多好处(包括更小的部署,可能更快的加载,更高质量,可伸缩纹理,可能更便宜的生产等)真正感兴趣。 )。 据我所知,嗡嗡声已经死了,我的雷达上也没有游戏在使用它们。发生了什么? 我希望程序纹理能够像NaturalMotion的东西一样(缓慢但稳定的采用)。

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.