Questions tagged «shading»

3
为什么在镜面反射明暗处理中使用H(阴影)代替R(phong)?
我在任何地方都找不到这样做的充分理由。phong中使用的反射向量在物理学上具有简单的基础。但是,在blinn中使用的半向量似乎没有合理的基础,并且不能构成适当的反映。但是,它已用于所有所谓的“基于物理的”阴影功能中。如果有良好的身体基础,我想知道。 我找到的原因有几个: 它的速度更快 -对此的信息参差不齐,但是即使如此,这也仍然是一个很好的理由……在1998年。 据我所知,它处理角度大于90度的效果更好 -唯一的原因是,不当使用phong术语。反射和视图的点积给出介于-1和+1之间的角度。通常将此角度钳制为0到1,这是90度问题的直接原因。重新对角度进行归一化,而不是对其进行夹紧,即可获得完整的180度覆盖范围。我拒绝相信简单的x * 0.5 + 0.5运算已经使图形世界望尘莫及了40年。 它可以更好地处理边缘 -边缘“问题”在blinn解决方案中也存在,只是程度较小。主要原因是在终结器处对区域光照的模拟不正确,这对于任何“基于物理的”着色器来说都是必不可少的。但是,即使在较简单的情况下,S型函数也可以正确地逼近软终止线。乘以兰伯特项是不正确的,因为它会不适当地衰减镜面项,这可能会抵消菲涅耳项并导致进一步的误差。 它在边缘有很长的反射 -在我看来,尽管各向异性反射可能是现实的,但blinn并不是实现它们的正确方法,因为它们仅出现在边缘。H项中的错误恰好看起来是现实的,这只是一个快乐的巧合。 这些原因都不能令人满意,我想理清这种疯狂。 我想澄清的是,我并不是在专门讨论blinn和phong ,而是在讨论向量分量H和R,它们被用作这些着色器以及其他着色器的基础。

2
延迟渲染中的阴影
我已经阅读了一些有关延迟渲染的材料,我想我对此有所了解。但是我不明白的是它如何实现阴影。据我所知,G缓冲区不涉及为每个光线创建一个阴影贴图,所以我对于光照通过如何知道每个像素是否被遮挡感到困惑。毕竟,从摄影机的角度可见的给定像素实际上可能从任何给定的光的角度都不可见,并且从摄影机的角度可能看不到遮挡的几何形状,因此在G缓冲区中没有任何内容。 如果开始渲染阴影贴图,则看起来与正向渲染几乎相同-为每个光源渲染场景中的所有几何图形以渲染阴影贴图。 那么延迟渲染如何完成与正向渲染等效的阴影?


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 
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.