Readme's explaining light phases?


(ACROBAT) #1

Anyone have any readme’s explaining the components of the lightphase? Also I could use some reading on “specular lighting” which seems to be a type of dyanmic lighting. I also know there is a lightgrid that is used for dyanmic lighitng of some sort vs. the static lightmap that is made during the light phase.

This area is all especially hazey to me. If someone has a good readme it would be helpful.


Also I was wondering about this statement I was reading yesterday

"
How can I control the BSP splits? (a way to use detail and Hint brushes)

ALL structural brush face-planes, Including completely hidden or nodraw faces, are possible candidates to split the BSP and create extra Leaf Nodes. Leaf Nodes are currently NEVER merged, even if the result of the merge would be a new convex leaf. The ideal situation is to have all structural brush faces axial and perpendicular to the grid lines every 128 units. Any more complex brushes can be made detail, and all hidden structural or detail Brush faces can be made nodraw as well, by applying the common/caulk shader. The effect is similar to using Bezier Patch surfaces, which also do not block vis or have any other visible faces than the front surface.

Hint Brushes are structural, trans, and nonsolid. This means they are totally invisible in a compiled Quake3 level, but their Face-Planes are used to split the BSP like other structural Brush Face. A large Axial Hint brush face will be an ideal candidate to be used for a BSP Split. Adding Hints with Axial faces (perpendicular to the 128-unit grid lines) aligned with other Axial Planes from structural Brush faces, minimises the number of extra split-Planes and Leaf Nodes.

Basing a map on the 128-unit grid allows you to hugely simplify the visibility process. If the leaf nodes are all 128-unit cubes, its very easy for the designer to predict whether one area can see into another, and place simple axial hint brushes to reduce visibility with minimal increase in vis pre-processing time. As detail brushes and bezier patch surfaces do not affect the shape of nodes they can be used to build up complex architecture in front of simple axial structural nodraw brushes"

Why 128 grid units?

Is that the default _blocksize distance?

Why not make the leaf nodes 1024 long? or larger?


(obsidian) #2

Specular lighting isn’t a dynamic light, it’s shine (reflected light) and it is not a light source itself. It’s used on dynamic (moving) models like players and weapon models. It’s also very different than what you see in other more modern engines like on idTech 4.

The light grid is a simplified 3D grid of volumes, each containing a coloured light value. As players or weapon models enter these areas, it modulates the model’s vertex colour values giving the appearance that they are walking into shadows or a strong red or blue light. This makes models appear to be reacting with some kind of “dynamic” light. It should be noted that there is a distinction between pixel colour and vertex colour. Pixel colour are the colours of your textures. Vertex colour is the colour values assigned to each vertex point of a surface. rgbGen in a shader, for instance, controls vertex colour. alphaGen in a shader controls vertex alpha. rgbGen const 1 0 0 will force your texture to appear as a red hue regardless of the texture’s actual colour since it will assign all the vertex colours of the surface to red. The light grid does this in a similar way by altering the vertex colours of the model as they pass from grid area to grid area.

Lightmaps are really just textures that are generated by the compiler and usually stored inside the BSP file. They get extracted and are blended on top of your textures giving the appearance of light and shadow.

Who wrote that and where are you quoting that from? TBH, I don’t agree with that. nodraw does not affect vis. There is no distinction on the size of each BSP-split, it can be of any size. Axial hints are rarely the most beneficial and there is no need to place them where there is already a split in the BSP. The idea with hint is to create new splits or specifically force a split at a certain area. If you’re going to build a map based on 128-unit cubes, you’re going to end up with a really boring box.

The default blocksize is 1024 units along the XY plane. The idea of the blocksize is to cull splits that are excessively long.


(ACROBAT) #3

It’s from a planet quake tutorial. I was browsing through it and I didn’t know what to make of it.

http://hosted.planetquake.gamespy.com/spog/stuff/technical.html


(obsidian) #4

Ah… I think SPoG was talking more from a programming/theoretical point of view and is presenting a best case scenario. Don’t take it completely literally as a mapper. Rule of thumb is to build structural brushes on a relatively large grid as you can given the layout, but there’s no rule that it has to be at any specific grid size. The idea is that any smaller structural brushes probably shouldn’t be structural in the first place.

Take the bit about hints for example, axial hints will be better for the compiler (faster) but often in practice, axial hints will be less effective in blocking visibility in L or Z shaped hallways than diagonal hints.


(080711jk) #5

中国·白唇鹿租赁有限公司 立体车库是青海白唇鹿股分有限公司(上市公司,立体车库股票代码 sh:600381)立体车库在北京合作经营的以租赁和立体车库设备制造和经营管理为主业的有限公司立体车。公司于2002年12月设立,立体车库注册资本人民币5270万元