Questions tagged «directx11»

DirectX 11是Microsoft平台(包括Windows,Xbox One和Windows Phone)的主要图形API。


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 

3
我通常应该在游戏的一帧中使用几个活动着色器?5个或更多,例如100个?
在现代游戏中,通常同​​时在一个场景中同时激活多少个着色器?我知道正在使用多个着色器,游戏在每一帧中在它们之间切换,通常通过着色器绘制对象: 使用着色器一绘制所有对象 从着色器一更改为着色器二 使用着色器2绘制所有对象 不过,我知道这并不是那么简单,尤其是对于整个场景的光晕效果,渲染到纹理等效果,但是我想我们可以假设它在大多数时间都可以正常工作,对吗?“按着色器分组”方法很好,因为切换着色器是一项昂贵的操作。 一方面,您不能有太多的着色器,因为您想快速渲染场景。另一方面,您需要用于皮肤,金属,水等的许多不同的着色器(或带有分支的超级着色器-非常相似)。 理论上的,现代的,第三人称3D PC侦探游戏(如果需要的话,是DirectX 11)将使用多少个(以及哪个)不同的着色器?在某个“帧X”处,将是5个,20个或更多(例如100个活动着色器),仅计算活动着色器吗?我知道这不是一个数字,但我想知道在考虑PC游戏时,什么规模和因素很重要。 在我的示例游戏中,我将每帧使用大约9-11(将其视为不同的小型着色器或一个超级着色器-现在不重要): 皮肤着色器 眼影器(不是太多吗?但它们是不同的) 金属着色器 地面着色器 雪/雨着色器(如果需要) 着色器(如果场景中存在水) 发光着色器(仅当涉及某些特殊效果时) 发光器着色器(路灯等) 标准着色器(对于所有其他着色器,仅是标准着色) 具有法线贴图的标准着色器 2D着色器(用于GUI等) 是“很多”还是“不是很多”?我是否忘记了一些我需要的重要着色器?

7
现代着色书?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 3年前关闭。 我对了解着色器感兴趣:它们是什么,何时/何地使用它们,以及如何使用它们。(特别是我对水和光晕效果感兴趣,但是我对着色器的了解接近于0,因此我需要进行一般性介绍)。 我看到了很多已经有两年历史的书籍,所以我不知道它们是否仍然适用。目前,我的目标是XNA 4.0(我认为这意味着适用于Shader Model 4.0的HLSL Shaders),但是我认为通常针对DirectX 11和OpenGL 4的任何东西都是有帮助的。

4
HDR如何运作?
我试图了解什么是HDR及其工作方式。 我了解基本概念,并对如何使用D3D / hlsl进行实现有一点了解。 但是,它仍然很雾。 假设我要渲染一个具有地球纹理和一小部分顶点的球体,以充当恒星,那么如何在HDR中渲染呢? 这是我有些困惑的事情: 我猜想,我不能为纹理使用任何基本的图像格式,因为在着色器中,值将限制为[0,255]并限制为[0,1]。后缓冲区同样如此,我认为格式需要为浮点格式? 还涉及哪些其他步骤?当然,不仅仅需要使用浮点格式来渲染到渲染目标,然后在后期处理中应用一些光晕?(考虑到输出将始终为8bpp) 基本上,HDR的步骤是什么?它是如何工作的 ?我似乎无法找到任何好论文/文章描述的过程中,除了这一个,但它似乎有点掠过基础,所以它的混乱。
17 c++  hlsl  directx11  hdr 

2
是否可以构造少于24个顶点的立方体
我有一个像Minecraft这样的基于多维数据集的世界,我想知道是否有一种方法可以构造一个少于24个顶点的多维数据集,从而减少内存使用量。 在我看来,这是不可能的,原因有两个:法线无法正确显示,每面纹理也无法使用。 是这种情况还是我错了?也许有些新颖的DX11技术可以提供帮助? 编辑:为了明确起见,我有2个要求:我需要每个立方体面的表面法线以进行适当的照明,并且需要一种方法来解决每个立方体面的纹理数组中的不同索引

1
没有窗口的DirectX11?
我只是想知道,是否有可能初始化DX11或DX9并将其仅用于屏幕外渲染-意味着没有附加的窗口。我的意图是在打开实际窗口之前进行一些GPU基准测试。在此基准测试中,呈现了一些测试场景,但不应看到。(实际上取决于基准分数,会打开不同的窗口)
13 c++  directx11 

2
DirectX11,如何管理和更新多个着色器常量缓冲区?
好吧,我很难理解常量缓冲区如何绑定到流水线阶段并进行更新。我知道DirectX11每阶段最多可以有15个着色器常量缓冲区,每个缓冲区最多可以容纳4096个常量。但是,我不明白用于与常量缓冲区交互的ID3D11Buffer COM是否只是用于填充这些缓冲区插槽的机制(或句柄),还是该对象是否实际引用了来回推送的缓冲区数据的特定实例?在GPU和CPU之间。 我认为我对该主题的困惑是导致我使用两个不同的常量缓冲区的问题的原因。 这是一些示例着色器代码。 cbuffer PerFrame : register(b0) { float4x4 view; }; cbuffer PerObject : register(b1) { float4x4 scale; float4x4 rotation; float4x4 translation; }; 我的代码的组织方式,相机将处理更新相关的每帧数据,而GameObjects将更新其自己的每对象数据。这两个类都有自己的ID3D11Buffer来执行此操作(使用集线器体系结构,因此一个GameObject类将处理世界上所有实例GameObject的呈现)。 问题是我一次只能更新一个,具体取决于插槽,并且我假设一个缓冲区被填充,而另一个缓冲区被填充为零的更新顺序。 这本质上是我的代码。这两个类使用相同的更新逻辑。 static PerObjectShaderBuffer _updatedBuffer; // PerFrameShaderBuffer if Camera class _updatedBuffer.scale = _rScale; _updatedBuffer.rotation = _rRotation; _updatedBuffer.translation = _rTranslation; pDeviceContext->UpdateSubresource(pShaderBuffer, 0 , 0, &_updatedBuffer, 0, …

1
不同对象的不同着色器DirectX 11
我正在学习Direct3D 11,在有关着色器编写的所有基本教程中,都编写了顶点着色器和像素着色器,因此它们以相同的方式变换整个场景。教程喜欢用纹理渲染立方体... 但我想知道,您如何区分对象?例如,如果要模拟某个对象上的镜面并使用不同的着色器来渲染场景的其余部分,该怎么办?我认为大多数游戏必须使用许多顶点和像素着色器才能实现各种外观和变换。 谢谢。
13 c++  directx11 

5
为什么在Vector3s中不能使用运算符'> ='?
我正在尝试获得一个矩形,以便在我称为_positionA和的两个位置之间移动_positionB。两者都是类型Vector3。矩形移动得很好。但是,到达时_positionB它不会像应该的那样朝相反的方向移动。 我回到代码中看一看。我得出的结论是,随着对象的移动,if代码中的语句错过了rects位置等于的框架_positionB。如果rects的位置大于或等于, 我决定将代码修改为反向_positionB。我的代码不太长,因此我将在下面显示它: using UnityEngine; using System.Collections; public class Rectangle : MonoBehaviour { private Vector3 _positionA = new Vector3(-0.97f, -4.28f); //Start position private Vector3 _positionB = new Vector3(11.87f, -4.28f); //End position private Transform _rect_tfm; private bool _atPosA = false, _atPosB = false; public Vector2 speed = new Vector2(1f, 0f); private …
9 unity  c#  vector  mathematics  vector  matrix  unity  c#  transformation  java  3d  terrain-rendering  shading  ios  opengl-es  opengl  rendering  optimization  python  scripting  minecraft-modding  modding  pc  3d-meshes  mesh  culling  point-cloud  networking  interpolation  mathematics  game-design  ai  game-mechanics  animation  unreal-4  skeletal-animation  3dsmax  unity  c#  3d  opengl  c++  textures  unity  ide  cocos2d  cocos2d-x-js  unity  c#  mono  il2cpp  c++  game-loop  timer  linux  flash  actionscript-3  java  glsl  c++  vector  entity-component  c++  directx11  windows  visual-studio  libgdx  mouse  unity  c#  architecture  storage  unity  c#  rotation  coordinates  quaternion  vrpn  movement  vector  unreal-4  unity  shaders  unity  gui  text  bug  shooter  3d  animation  rendering  voxels  c++  mmo  multithreading  linux  textures  procedural-generation  terrain-rendering  multiplayer  mmo  game-state  java  android  libgdx  opengl  procedural-generation  unity  gui  3d  animation  tools  geometry-shader  mobile  advertisements  unity  c#  animation  scripting  unity  animation  unityscript  coroutines  unity  shaders  lighting  camera 

2
D3D / DXGI处理全屏过渡
我有一个D3D11应用程序,我想添加适当的全屏支持。现在,我可以让DXGI为我将窗口切换到全屏状态,并且给人的印象是DXGI会处理使交换链翻转前后缓冲所需的一切,而不是消隐它们。 但是,在多监视器设置中,让DXGI执行切换似乎不可靠-切换大量时间后,辅助屏幕完全保持黑色,没有明显的原因或模式。 它可以采取几次来回切换之前,我全屏窗口和桌面的其余部分显示的其他屏幕上。 显然我并不孤单,《战地风云3》和《魔兽世界》似乎对很多人都有类似的问题。 现在,真正的问题是:我猜想,即使是那些AAA游戏开发公司也无法做到这一点,所以我最大的希望是自己以某种方式执行全屏切换。 我有什么办法可以将窗口/交换链提升为适当的,缓冲区翻转的全屏模式?

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.