Questions tagged «lighting»

模拟游戏中的灯光和照明,包括其与环境的交互作用。游戏的核心元素,可以将活力带入其他静态世界。

2
什么是物理上正确的照明?
使用Google我找不到任何全面的东西。我想知道物理上正确的照明的核心概念是什么,以及在哪里可以阅读。什么是物理上正确的照明?Phong照明通常在物理上不正确吗?
10 lighting  pbr 


3
《我的世界》世界中的照明
《我的世界》是一款主要基于高度图的游戏,并使用该高度图信息使世界充满光明。据我了解,高度图中的最高点是受阳光影响区域的末端。上方的所有物体都被阳光照亮,下方的所有物体都受到附近8个半径范围内的光线的影响。 因此,如果您在世界之巅上有一个浮岛,那么位于其下方的所有事物都会被视为一个洞穴。当两个灯影响同一点时,较亮的灯将获胜(对此不确定)。 无论哪种方式,Minecrafts的照明模型都存在两个问题:首先,如果您的世界没有高度图,那么弄清楚究竟应该发出什么阳光以及什么不发出阳光变得很棘手。一种简单的方法是假设世界(在我的情况下)是一块漂浮的岩石,然后从两个方向遍历每个轴并找出岩石的开始和结束位置。但这并不能完全消除问题,因为岩石中的凹痕不应该处于黑暗中。 Minecraft本身会将光信息与有关块材料的信息一起缓存在其块中。因此,只有在世界被修改的情况下,照明才必须更新。不幸的是,该过程在更新上仍然相当缓慢,并且在快速更改灯光时,人们可以看到照明落后。如果很多块发生变化(TNT,日落等),并且您没有运行最快的计算机(或Mac上的Java),则尤其如此。 从我对3D图形照明的了解仍然有限,像Minecraft这样的世界应该不是最大的问题。您将如何解决这个问题? 我认为体素世界中照明的基本要求是 更新速度足够快,以至于可能在单个帧中发生。一个人可能可以在图形设备中进行照明并将更改后的照明信息下载到主RAM。 灯光信息必须能够快速用于主要游戏逻辑,因此不能完全基于图形设备:推理:灯光会影响草的生长,怪物的产卵等。 灯光更新必须是局部的,或者有其他一些限制,这样就不必重新照明可能很大的整个世界。 主要思想是使灯光更新更快,但不一定更美观。对于一般的灯光渲染性能改进,可以很容易地在其中添加SSAO,这将带来更好的效果。
10 opengl  maps  lighting 

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 

1
如何在Unity3D中遮挡灯光?
首先,我拥有Unity Pro。 我一直在寻找遮挡灯光的方法,现在已经有一段时间没有出现了,以提高性能。我遇到的主要方法是使用BecameVisible()并测试相机的视锥。 我的主要问题是,如果玩家正在观看一个被灯光照亮的区域,我仍然希望该灯点亮。 目前,我正在使用一种方法来检查照明区域是否在相机的视锥中,但是问题是有时视锥中的光没有被玩家实际看到(例如,玩家与玩家之间的墙)。我已经尝试过对它们进行光线投射,但是对于实际的照明区域,您永远无法获得足够的详细信息(我能想到的最好的方法是使用renderer.bounds.extent和renderer.bounds.center来计算灯光的最大照明点)。 有谁知道Unity Pro中遮挡灯光的简单方法吗?还是您能告诉我一种使用我正在谈论的相机支点方法的好方法?

2
为什么我的模型不能连续点亮?
我使用Blender创建了一个基本的纹理立方体模型来进行建模,然后将其导入Unity。我放了一些照明灯后,看起来很难看。一排纹理立方体上的光线不连续: 更奇怪的是,组成地板的砖块上的灯光是连续的。我究竟做错了什么? 这是没有纹理的外观: 如果我不知道这些是完美的立方体,我会说表面上有轻微的弯曲。我也尝试减轻纹理,但这也无济于事: 我只是简单地从Blender中导出模型,而没有设置任何法线或类似的东西。但是,对于地板砖模型,我也没有做任何特别的事情。 检查法线,它们似乎指向正确的方向。 我也没有真正看到两个模型之间的区别。在纹理面板上,我还将投影设置为平坦: 我检查了Blender中的不同面板,“对象数据”面板上唯一与法线相关的选项是“自动平滑”,默认情况下处于关闭状态:

2
处理场景中的许多灯光(带有着色器)
我很好奇如何处理场景中的许多灯光。给定角色扮演游戏中非常大的地图,其中包括地牢(其中有灯光)等。我知道延迟照明,但这只能回答如何渲染许多灯光。但是我的问题更多:如何不渲染很多灯光。仅渲染影响场景的灯光显然是可取的,但是我不知道将其存档的技术/算法。没有人希望甚至能够渲染500个点光源,仅仅是因为地图上的某个地方。但是,人们不能只是从灯光到玩家的直线,并测试两者之间是否有直线。距离似乎也不是一个好的指标。(阳光?) tl; dr:如何找出仅影响渲染的灯光会影响场景?


4
关于电子游戏照明的好书吗?[关闭]
已关闭。这个问题需要更加集中。它当前不接受答案。 想改善这个问题吗?更新问题,使其仅通过编辑此帖子来关注一个问题。 2年前关闭。 照明在电子游戏中起着至关重要的作用。没有良好照明的电子游戏是平坦的,没有生命。我正在寻找一本书,该书解释了如何为场景增光,以及创造令人信服的世界涉及哪些因素。
9 books  lighting 
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.