redeclipse / base

Base environment for Red Eclipse and associated source files.
https://redeclipse.net/
437 stars 90 forks source link

Rectangular volumes for envmap entities #875

Open no-lex opened 5 years ago

no-lex commented 5 years ago

Maps are made out of rectangular elements mostly, but environment maps are mapped about spheres. This leads to the radii of envmaps not cleanly bounding the surfaces they are intended to map and causing:

Here is an example of the envmap entity for the glass ceiling causing a jagged, ugly effect on the env texture on the wall. envbug

If this is to be implemented, it needs to be determined how the entity attributes will be numbered, as the current three attributes (radius, size, blur) would have to be expanded to include an attribute for shape (if it is determined that envmaps are desired in non-rectangular volumes, like the currently present spheres) and the three relevant dimensions (x,y,z) of the envmap.

If it is also feasible (convenient, but not nearly as beneficial as rectangular volumes) to be able to move the envmap entity relative to the bounds of its effect, there would need to be an additional three attributes (x-offset y-offset z-offset).

Possible ways of organizing the attributes:

1: only rectangular volumes supported, support for spherical envmaps dropped envmap x y z size blur [x-offset y-offset z-offset]

2: maintain support for spheres, maintain the first three attributes, and append shape & offset attributes to the end envmap x size blur shape y z [x-offset y-offset z-offset] (this would require support for deforming the sphere along all three axes)

3: have different sets of attributes for spherical and rectangular envmaps envmap x y z size blur shape [x-offset y-offset z-offset] (rectangular) envmap radius size blur shape [x-offset y-offset z-offset] (spherical)

Suggestions and ideas for implementation welcome; I've been trying to parse the code controlling this but haven't had much luck yet. Similar features may be useful for teleports as well.

SniperGoth commented 5 years ago

This also happens on my map Deathtrap: Lab, and can be quite disorientating while walking around it. 20190505173228

And even if you place various Env entities close by to try to make the effect better, it gets a lot worse. 20190505173728

So, i also vote for the rectangular envmaps/cubemaps to be implemented in. If they had some sort of blending in between "env collisions", this wouldn't be that huge of a issue, but now, it is, and should be taken in consideration.