From: Jorrit T. <jo...@cv...> - 2000-01-02 19:58:33
|
Date: Sunday January 2, 2000 @ 11:57 Author: jorrit Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv1947/libs/csengine/light Modified Files: lghtmap.cpp Log Message: Various memory optimizations for polygons. In total lightmapped polygons are about 500 bytes shorter (for every polygon). As an extra bonus there is only one lightmap for every polygon instead of four. This shaves another extra 2000 bytes on average for every polygon. Some smaller optimizations. |
From: Eric S. <sun...@cv...> - 2000-01-04 21:42:08
|
Date: Tuesday January 4, 2000 @ 13:40 Author: sunshine Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv17160/libs/csengine/light Modified Files: dynlight.cpp Log Message: Non-static DECLARE_GROWING_ARRAY() instantiations now work on NextStep as well. The NextStep compiler could not grok the floating semi-colon which was recently added to appease MSVC when it immediately followed public:, protected:, or private:. |
From: Jorrit T. <jo...@cv...> - 2000-01-07 08:07:01
|
Date: Friday January 7, 2000 @ 0:05 Author: jorrit Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv2865/libs/csengine/light Modified Files: lghtmap.cpp Log Message: Fixed colored lighting for hardware accelerated renderers. |
From: Jorrit T. <jo...@cv...> - 2000-02-01 09:36:06
|
Date: Tuesday February 1, 2000 @ 1:34 Author: jorrit Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv17509/libs/csengine/light Modified Files: light.cpp Log Message: When a dynamic light is deleted it will remove itself from the world as well. |
From: Andrew Z. <an...@cv...> - 2000-02-23 15:32:11
|
Date: Wednesday February 23, 2000 @ 7:05 Author: andyz Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv20577/libs/csengine/light Modified Files: lghtmap.cpp light.cpp Log Message: Rewritten texture manager and texture cache. Vastly improved software renderer. Lots of changes, too many to list them here. Will post a detailed message on the mailing list. |
From: Thomas H. <th...@cv...> - 2000-02-25 18:45:55
|
Date: Friday February 25, 2000 @ 10:42 Author: thieber Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv21291 Modified Files: lghtmap.cpp Log Message: Made things work again on Win32 |
From: Andrew Z. <an...@cv...> - 2000-02-28 17:22:25
|
Date: Monday February 28, 2000 @ 9:18 Author: andyz Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv7866/libs/csengine/light Modified Files: lghtmap.cpp Log Message: -*- Removed csPolygonTexture mipmaps from the engine. From now on mipmaps are the fully internal problem of the 3D rasterizer. Removed MIPMAPPED() keyword (retained for backward compatibility but ignored). -*- Mipmap level selection is based on texel density in the nearest polygon point. Mipmap level 1 is selected when texel density is above 1 texel/pixel, mipmap level 2 is selected when density is above 2 texels/pixel, mipmap level 3 - when density is above 4 texels/pixel. Theoretically the thresholds should be 2/4/8 respectively (instead of 1/2/4) but with the above solution the texture cache usage is lower (lower mipmap resolutions are choosen more often) and the quality is reasonable. -*- Fixed (actually fixed, not just a work-around) the problem with lighted textures being written past end-of-texture in the texture cache. The problem was that sometimes textures are even smaller than the size of one lightmap cell; in this case we don't need to paint a whole lightcell. |
From: Andrew Z. <an...@cv...> - 2000-03-13 13:31:24
|
Date: Monday March 13, 2000 @ 5:26 Author: andyz Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv26137/libs/csengine/light Modified Files: dynlight.cpp Log Message: -*- Serious change: Re-implemented DECLARE_TYPED_VECTOR so that it defines a *correct* overriden vector. Previously it worked incorrectly, that is, FreeItem() was incorrect. Because of this declared vectors missed the auto-clean feature. Note that map2cs used that much (mis-)features of the old DECLARE_TYPED_VECTOR that I had to make a local copy of the old-behavioured DECLARE_TYPED_VECTOR inside map2cs. Another user of DECLARE_TYPED_VECTOR is Crystal Clear, but I did not seen any manual cleanup of vectors: this is either a memory leak or possibly a design issue. In the later case Crystal Clear is slightly broken: you should decide whenever you want the auto-clean feature or not, and if not you should override FreeItem() with an empty declaration. -*- cskeys.h & cskeys.cpp: Two new routines for parsing a free-format string into a keyboard event and vice versa. Useful for supporting user-defined hot-keys. -*- I've added four new key codes to csinput: CSKEY_PADPLUS, CSKEY_PADMINUS, CSKEY_PADMULT, CSKEY_PADDIV. I've implemented support for them in OS/2, DOS/DJGPP, Win32. Other platforms will have to implement it. Note that MazeD already uses these keys, so you can use it as a test tool :) -*- Added fully configurable keyboard support in MazeD. You can assign any key combination supported by CS to any of more than 100 commands. You can have different layouts in MazeD.cfg file, this way: [MazeD] Key bindings = My own [My own key bindings] Based on = Default key bindings Q = Nothing Alt+X = Quit Ctrl+Alt+Space = About Ctrl+o = OpenWorld Ctrl+Ins = Nothing Ctrl+c = Copy ... Note that CASE actually MATTERS. I.e. Ctrl+c and Ctrl+C are completely different things (i.e. the second is actually Ctrl+Shift+c). -*- Implemented some more of the texture mapping dialog. Not complete yet but already something to look at :-) |
From: Jorrit T. <jo...@cv...> - 2000-03-24 15:31:46
|
Date: Friday March 24, 2000 @ 7:26 Author: jorrit Update of /cvsroot/crystal/CS/libs/csengine/light In directory cvs1.i.sourceforge.net:/tmp/cvs-serv8509/libs/csengine/light Modified Files: light.cpp Log Message: - Added csCBufferCube which is a cube of six c-buffers :-) - Tried to use csCBufferCube for lighting instead of coverage mask tree cube. I was expecting to get more performance for lighting because the c-buffer is faster than the coverage mask tree. At least that was what I thought! But I discovered that the coverage mask tree implementation does not test for IsFull to stop processing a tree if it is full! This can make a HUGE difference. So now I'm not so sure that the c-buffer is really better. This needs to be reevalulated. - Removed csQuadtree and csQuadcube usage from the engine since the quadtree is the worst of all 2D cullers we have now. - Removed 'quadtree' command from WalkTest. - Fixed bug in WalkTest movement code on systems that return negative values for Time() (movement would not be possible on such systems). - Thanks to Andrew's changes to the clipper I implemented a new clipper in DrawTriangleMesh. This also solves the bug when sprite triangles were clipped. Note that this bug ONLY fixes sprites. The bug will still be present in the other triangle drawers. This fix fixes Squawk as well I think. |
From: Jorrit T. <jo...@sl...> - 2000-04-10 12:14:25
|
Date: Monday April 10, 2000 @ 5:07 Author: jorrit Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv27939/libs/csengine/light Modified Files: light.cpp Log Message: - Added 'DETAIL' keyword for THING and SIXFACE and CS_ENTITY_DETAIL flag to csThing. With this keyword you can indicate detail objects in CS. Currently the only effect this will have is excluding the thing from the octree and rendering it true the new and experimental DrawPolygonMesh. So don't start using it already unless you are interested in beta testing :-) - Several objects implemented a 'CheckFlags' in the engine. I fixed a comment in CheckFlags(). The comment said that ALL flags in the given mask had to be true but the function itself returned true if SOME of the flags were true. I fixed the comment and added a new CheckAllFlags() function that really checks if ALL flags are set. This affects csThing, csPolygon3D and csLight. - Added csFlags class to csutil. This is a very small class to make abstraction of the above settings for objects in the engine. - Fixed bug in DrawPolygonMesh where num_vertices was used instead of num_polygons to loop over all polygons. - Fixed bug in DrawPolygonMesh where the array of txt_handle should be iTextureHandle** instead of iTextureHandle*. Same for poly_texture. - Implemented needed support for poly_texture in DrawPolygonMesh. - Mapping of vertices to G3DPolygon structure was completely wrong. - Several other fixes to DrawPolygonMesh to make it really working. - Implemented first primitive support for rendering detail objects through DrawPolygonMesh. This is initial support for purposes of debugging DrawPolygonMesh only. It does not yet support all features (like fog and clipping) and it will certainly be slower than the old way to render. - Changed iGraphics3D::SetTransform to use a csReversibleTransform instead of a csTransform. - Changed iGraphics3D to use a csPlane3 instead of the current old structure. |
From: W.C.A. W. <wo...@sl...> - 2000-04-13 18:41:30
|
Date: Thursday April 13, 2000 @ 11:34 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv23619/CS/libs/csengine/light Modified Files: light.cpp Log Message: Bugfix in destructor, have to delete halo too. |
From: Andrew Z. <an...@sl...> - 2000-04-14 11:08:36
|
Date: Friday April 14, 2000 @ 4:01 Author: andyz Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv5124/libs/csengine/light Modified Files: light.cpp Log Message: Removed ambient_white variables from csLight class. Now csWorld just adds the AMBIENT_WHITE value to csLight::ambient_r/g/b and that's all. |
From: W.C.A. W. <wo...@sl...> - 2000-04-16 11:56:06
|
Date: Sunday April 16, 2000 @ 4:48 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv2365/libs/csengine/light Added Files: radiosty.cpp Log Message: Radiosity rendering for crystal space. Set the NEWRADIOSITY=yes in cryst.cfg to enable it. Caveat: it is not stored in precalc.info, so always use -recalc. Note: flarge takes an hour with 64x64 lightgrid for me. Reduce your ambient white before using radiosity - it will light up as well. Remove 20 to 40 from it. The handbooks say that a small patch size is necessary, thus 16 is 'okay'. But time increases ^2 or ^3 in the number of patches... So beware. A feature is needed to really use radiosity: ambient_color for a polygon, so that a polygon is 'self lit', radiosity will then spread the light to surroundings. The global ambient color is removed before radiosity calculation, and put back afterwards. Also the old pseudo-radiosity algorithm is not useless, it is a global- reflection algorithm, and having a 'reflection' fraction per polygon would be nice, as well as the global_reflection. When you're adding params to polygons add 'diffuse' for the diffuse reflection used by the radiosity algorithm. 0.7 now, not often changed. Have fun, Wouter |
From: Jorrit T. <jo...@sl...> - 2000-04-19 13:43:57
|
Date: Wednesday April 19, 2000 @ 6:36 Author: jorrit Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv28747/libs/csengine/light Modified Files: light.cpp Log Message: Did a big change to csSector::CalculateLighting(). It is now called CheckFrustrum() instead. It is now a general function used to check what is visible in a frustrum. The csFrustrumView (used to be csLightView) that you give to this routine contains two callback routines (one for polygons and one for curves) which will be called for every visible polygon or curve. You can do your stuff there. The engine itself uses this for lighting. Note that there is still some stuff to clean up here. The csFrustrumView structure contains too much that is specific to lighting. |
From: W.C.A. W. <wo...@sl...> - 2000-04-19 17:52:22
|
Date: Wednesday April 19, 2000 @ 10:44 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv25573/libs/csengine/light Modified Files: radiosty.cpp Log Message: Now: fixed, faster and has coloured diffuse reflection. |
From: Andrew Z. <an...@sl...> - 2000-04-20 10:31:50
|
Date: Thursday April 20, 2000 @ 3:24 Author: andyz Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv17744/libs/csengine/light Modified Files: lghtmap.cpp radiosty.cpp Log Message: -*- Fixed the DOS/DJGPP that was slightly broken after my last changes to csinput system. -*- Fixed MGL 2D driver. Now it always uses the backbuffer in system memory, now it run at least as fast as RAWDOS VBE 2.0 driver. Hmm... strange I see absolutely no gain by using hardware accelerated BitBlt over memcpy(). -*- Added a simple new tool called "textconv" which can be used to convert text back and forth between Unix and DOS line ending formats. -*- Improved the new loader of course. Now it loads sectors and things, I already see light at the end of tunel. -*- Fixed a lot of 2D drivers. The iGraph2D interface defines a function called GetDoubleBufferState () while some drivers still define the old fashioned DoubleBuffer() function which effectively made the application unable to query the real double-buffering state. This can fix some problems with double-buffering on Windows, for example. -*- Started to fix a part of the infamous Black Borders (BB) problem. The work is not finished so the lightmaps will be for now even worse than they were before, but it will be changed in near future. Please do not spend time fixing it. -*- Added a new macro DEBUG_BREAK in sysdef.h that is handy for setting debugger breakpoints (e.g. the debugger will break when that macro will be invoked). It is defined only in CS_DEBUG mode. |
From: W.C.A. W. <wo...@sl...> - 2000-04-21 14:13:51
|
Date: Friday April 21, 2000 @ 7:06 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv29089/CS/libs/csengine/light Modified Files: radiosty.cpp Log Message: Radiosity, now fast, no BBs, and works for bsp levels. Still has WB though. |
From: W.C.A. W. <wo...@sl...> - 2000-04-21 14:34:05
|
Date: Friday April 21, 2000 @ 7:26 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv29803/libs/csengine/light Modified Files: radiosty.cpp Log Message: fixed warnings. |
From: W.C.A. W. <wo...@sl...> - 2000-04-22 20:44:06
|
Date: Saturday April 22, 2000 @ 13:36 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv387/libs/csengine/light Modified Files: radiosty.cpp Log Message: Slightly better quality loop detection code. |
From: W.C.A. W. <wo...@sl...> - 2000-04-28 20:24:48
|
Date: Friday April 28, 2000 @ 13:16 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv19748/libs/csengine/light Modified Files: radiosty.cpp Log Message: Weird crash bug in optimize mode is fixed now. Warning to any sane programmer: the fix was holistic in nature. The code now feels much more in balance, and because of the good vibes the bug went away, I hope. At least the bug disappeared for me :-). |
From: Andrew Z. <an...@sl...> - 2000-05-03 07:19:30
|
Date: Wednesday May 3, 2000 @ 0:10 Author: andyz Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv23277/libs/csengine/light Modified Files: lghtmap.cpp light.cpp radiosty.cpp Log Message: -*- Removed all stuff related to the old way to do high-quality lightmaps. Removed csPolygon3D::ScaleLightmaps2X, csPolygon3D::UpdateLightmapSize, csLightMap::Scale2X. Removed all stuff required to support 2x lightmaps from csWorld. -*- Implemented a totally new way to do high quality lightmaps. It is supposed to produce more high quality lightmaps. Last but not least the new algorithm removes both infamous Black Borders {tm} problem as well as the old White Borders {tm} problem (WB were resolved in the previous implementation, but my new approach allows to resolve WBs even for dynamic lightmaps! Not done yet though...). My measurements also shows it is a lot faster... maybe it is a result of some bugs that are still left. dmburg level -recalc's with the old algorithm on my machine for 118 seconds, with the new algorithm it takes just 49 seconds. This could be due to bugs that are still existing though (very likely). -*- Fixed typo: frustrum replaced with frustum. There were thousands of such errors. The only thing left is to rename frustrum.cpp and frustrum.h. -*- "fclear on" in walktest now will clear zbuffer on every frame. -*- Separated the "antialiased polygon" code from polytext.cpp into a separate file in libs/csgeom. Now it is useable from any application/library. |
From: W.C.A. W. <wo...@sl...> - 2000-05-03 18:40:11
|
Date: Wednesday May 3, 2000 @ 11:31 Author: wouter Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv22772/libs/csengine/light Modified Files: radiosty.cpp Log Message: radiosity now features: ambient is fixed, use standard ambient values again. slightly faster. can do specular gloss. Options configurable in config. |
From: Andrew Z. <an...@sl...> - 2000-05-04 07:20:54
|
Date: Thursday May 4, 2000 @ 0:20 Author: andyz Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv17399/libs/csengine/light Modified Files: lghtmap.cpp light.cpp Log Message: Fixed another lighting bug. Now every light frustum has a unique numeric ID which can be used to uniquely identify that frustum. This is used to avoid duplicate lighting of same shared lightmap by same light. |
From: Eric S. <sun...@sl...> - 2000-05-04 20:37:12
|
Date: Thursday May 4, 2000 @ 13:37 Author: sunshine Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv32752/libs/csengine/light Modified Files: light.cpp Log Message: Fixed compilation warnings. |
From: Eric S. <sun...@sl...> - 2000-05-04 22:59:51
|
Date: Thursday May 4, 2000 @ 15:59 Author: sunshine Update of /cvsroot/crystal/CS/libs/csengine/light In directory slayer.i.sourceforge.net:/tmp/cvs-serv14574/libs/csengine/light Modified Files: radiosty.cpp Log Message: Fixed a bogus conditional test in csRadiosity::FetchNext(). Wouter, please verify that this fix is correct. |