Pages: << Previous 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 Next >>
Summary Period: 2000-06-13 to 2000-06-02 (Commits 2695-2744 of 12744)
Changed names from dynamic textures to the more correct term procedural
textures.
- The iGraphics3D method CreateOffScreenRenderer is now gone. All drivers are
updated.
- The software drivers procedural textures are now more memory efficient.
- By default the software procedural textures use the main renderers texture
manager, which makes it more consistent with the glide and back buffer
opengl implementations. Within this mode the engine can render to the
texture.
- The CS_TEXTURE_DYNAMIC_SHARE_HINT is now gone. In its place is a new hint
CS_TEXTURE_PROC_ALONE. When this flag is selected the software procedural
textures run internally at 8bit, they share and utilise their own 8bit
texture manager. (Before each procedural texture had its own texture
manager and cache..this is no longer the case :). The engine cannot render
to the texture in this mode.
- The iTextureHandle->TextureDynamicSyncPalette is now gone. This is no
longer needed, and makes the interface more consistent across
implementations. In its place is ProcTextureSync (), which currently is
an empty method, but is in preparation for fine grained control of
mip-mapping. The software texture manager now keeps a single linked list
of all 8bit canvases it services.
- Rewritten the opengl software procedural texture implementation. So that it
can be rendered to by the engine.
- Added a force32bitsoftware additional flag to opengl.cfg, which performs
better with mesa and 16bit displays with a voodoo2. However, the problem
with the transposition of red and blue returns, this is probably a bug
in Mesa3.3beta.
- This is how it now works: csOpenGLProcSoftware now wraps an instance of
csSoftProcTexture3D. This instance is created via a new interface
iSoftProcTexture. csSoftProcTexture3D creates its own texture manager and
canvas. Subsequent software procedural textures share this texture
manager. Each procedural texture registers itself with the software
texture manager, and passes its handle back to the csOpenglProcSoftware
class which stores it in a vector along with its opengl texture handle.
The app writer registers and prepares all textures with the opengl
texture manager, and then starts rendering. Each texture handle not
already present within the vector is registered and prepared with the
software texture manager and its handle stored with its opengl counterpart
in a vector. Each iGraphics3D call which utilises a texture is intercepted
and the opengl texture handle swapped for its software counterpart. On
Print (csRect) the opengl texture is updated with the new procedural
texture state, and also its software counterpart.
- This change has required modifying the software drivers so that the
texture handle is not referred to within the iPolygonTexture structure.
- The CS_TEXTURE_PROC_ALONE_HINT has the effect of disabling the updating of
the software texture managers versions of the procedural textures, which
improves performance but disallows the engine from rendering to any
procedural textures. For this mode to operate all textures need to possess
this flag otherwise it'll revert to the slower mode.
- Fixed the colours on the opengl back buffer implementation. Voodoo2 owners now
need Mesa beta3.3 from cvs for this to work. Unfortunately glCopySubTexImage2D
is now broken in cvs so I cant implement this optimisation. The texture
probably still renders inverted, it does on the voodoo2. I dont think there
is an opengl trick to reinvert the texture, but I could be wrong. Possible
solutions are to intercept every draw call and invert these or to copy over
from the framebuffer to the texture line by line. The latter way is going to
be *slow*, the former would involve modifying transformation matrices (i.e.
rotating by 180 degrees the world to camera matrix about the lookat vector)
within the driver and inverting all vertices which are in screen co-ordinates.
I wait for a better suggestion :).
- Lastly Ive destroyed the performance of the opengl procedural textures, oops,
need to investigate this :( Used to get about 70fps with the astext texture
alone, this is now down to 10ish with software textures. This might be
Mesa3.3beta.
- dtsimple is updated to demonstrate how to do things with the cleaner, more
consistent interface.
- Added new constructor for csImageMemory
- Fixed typo in memdbg.sh
582 lines of code changed in:
- Added csPoly2D::Random() to generate a random convex polygon
(triangles only right now). This is going to be used for
debugging the c-buffer.
- Cleaned up all compressed vertex/normal/texel stuff in csSprite3D.
This cleans up sprite code considerably. If this funcationality
needs to go back we'll have to implement it again in a cleaner
way.
- Added csCBuffer::TestPoint() to test a single point in the
c-buffer.
- Fixed LOD for 3D sprites. Looks as ugly as before but at least
it works again :-)
217 lines of code changed in:
Less debug info, seems to work.
5 lines of code changed in:
Now uses a more transparent storage ordering. Untested code, but functionality
for full culling should be present. Print() method should work now (for debug).
Perhaps I have removed K. Robert Bate's mac port fix. But that fix provably
breaks the VC port.... Anyway, perhaps I should look up the correct syntax
somewhere?
79 lines of code changed in:
Fixing up so it will compile on Mac.
1 lines of code changed in:
committed a huge update to the dungeon plugin
28 lines of code changed in:
- Started a reasonably big redesign of the dynamic object system.
csObjectStub and csPolyTreeObject don't care about polygons
anymore. They are now simply objects and stubs that can be placed
in an octree (bsp tree). Specific subclasses (csPolygonStub
and csDetailedPolyTreeObject for example) can add the functionality
needed for splitting polygons for a bounding box of a sprite.
This allows easier and lighter versions of those classes as well
which don't split polygons but only store the nods where they
are visible.
- 3D sprites now use the new design. 2D sprites haven't been
updated yet so they are still not visible with c-buffer enabled.
There is also a pure virtual function call at exit right now which
needs to be solved.
- New db_dumpstubs console command to dump the stubs of the current
octree and the last added sprite to the world.
- Fixed bug in BSP traversal with polygon stubs. 3D sprites could
sometimes disappear because of this bug.
- Added csCBuffer::GfxDump() to debug the c-buffer.
- New db_cbuffer console command to debug the c-buffer contents.
It will show the c-buffer online (all empty spans will be blue and
a small red line will be put in front of every completely full line).
- Fixed a serious bug in the c-buffer. This bug could cause some
polygons to be span converted completely wrong in the c-buffer.
This could an occasional error in rendering (rather rare) and is
probably also the reason for various lighting errors using
the c-buffer cube (enabled yesterday) and visibility errors with
PVS. Note that I'm not convinced that this is the last bug with the
c-buffer. I still have PVS and lighting errors and although they
could be related to something else they could just as well have to do
with the c-buffer.
- Created new db_osolid debug command. This command will create
things for all solid space boundaries in an octree node.
- Switched to C-buffer cube for lighting. This improves lighting
speed for dmburg from 30 seconds to about 8 seconds and it
seems to work reasonably well. This also improves speed of dynamic
lighting with about the same factor. Radiosity will also improve
by this. Note that the c-buffer cube has some bugs so lighting
isn't perfect in all cases. I will be working on this.
384 lines of code changed in:
Update for new db_osolid command.
4 lines of code changed in:
- In an effort to completly fix PVS and make sure that everything is
ok I started adding extensive comments everywhere.
- Changed the eight frustums in PVS to only one. This is more
efficient because we only need to clip the occluder polygon once
in that case.
- Did a very significant bug fix in PVS. This seems to improve
quality ENOURMOUSLY. It also results in a few errors but I'll have
to debug these seperately. This looks very promising indeed.
- Moved a lot of PVS algorithm code into csPVSAlgo. That cleans
up csOctree a little.
- Created new db_osolid debug command. This command will create
things for all solid space boundaries in an octree node.
148 lines of code changed in:
Made compileable on MSVC 6.0 Std. (MSVC was complaining about the various Function pointer ops. The new version works fine now, but is less pretty)
13 lines of code changed in:
fixed.
9 lines of code changed in:
Fix for 8-bit OpenGL and palette from Thomas Krug <thomas.krug@assix.de>.
1 lines of code changed in:
compiles now.
2 lines of code changed in:
Intersect(csVector*,int) is now a const routine.
1 lines of code changed in:
Return value nice now. TestPolygon().
41 lines of code changed in:
InsertPolygon()
44 lines of code changed in:
GetNodeState, SetNodeState, CallChildren()...
46 lines of code changed in:
#if 0-ed csQuadCube and csQuadTreePerspective.
8 lines of code changed in:
- Fixed another bug in PVS.
- Did a new optimization for PVS. If all children of a node are
not visible then the node itself will not be visible as well.
15 lines of code changed in:
better comments.
27 lines of code changed in:
better comments.
3 lines of code changed in:
Busy reimplementing QuadTree, bitpacked and better.
93 lines of code changed in:
- Fixed a serious bug in csPoly3D::CutToPlane(). It was completely
messed up.
- Fixed a potential bug in PVS. Some of the routines didn't clear
the polygon as they should.
- Fixed a bug in the frustum calculation of PVS. The planes were
computed completely wrong.
- Made csloader more robust. It now detects planes which are badly
specified.
41 lines of code changed in:
Restored body dimensions and disabled radiosity. The body dimensions
were changed to make flarge look more natural. But it is flarge
that should be fixed.
4 lines of code changed in:
Added support for RGBA (transparent meshes) to DrawTriangleMesh.
20 lines of code changed in:
Added RMDIR equivalent for cross platform compatibility.
16 lines of code changed in:
- Added csPoly3D::CutToPlane() to cut a polygon with a plane
and only keep the front side.
- Added csPlane3::Set() to initialize a plane given three vectors.
- Some work on PVS again. Tried to fix a serious bug with shadow
projection. Not sure that I actually fixed it. Will have to do
some more tests.
- Cleaned up indentation in terrain.cpp.
171 lines of code changed in:
updated radiosity settings.
4 lines of code changed in:
working on it, progress meter has improved, SMALL_EPSILON is now used.
12 lines of code changed in:
Fixed OpenGL GLX driver (2D driver for OpenGL/X Windows).
It was trying to find a visual with AUX buffers.
6 lines of code changed in:
Removed default glide driver.
2 lines of code changed in:
Fixing what looks to be an error in an if statement.
1 lines of code changed in:
Changing max_texture_size from int to GLint so things will compile on CW.
1 lines of code changed in:
- Reworked the hashmap iterators. They didn't work that well in
all circumstances.
- Added new csPolygonEdges class that takes a list of polygons
and creates a set of indexed edges.
- Added 'const' to two csPolyIndexed methods.
- Split octree.cpp into octree.cpp and pvs.cpp.
- Added csPoly2D::ClipPlane() to clip a 2D polygon to a 2D
plane (i.e. line) and return the right side of that polygon.
- Added csPoly2D::ExtendConvex() to extend a convex polygon
with another polygon while keeping the resulting polygon convex
again.
- Started work on optimization for PVS that will try to merge
adjacent convex polygons into bigger occluders. Not finished
yet.
- Fixed serious bug with csPoly2D::Intersect() and csPoly2D::
ClipPlane() that could cause clipping errors in some cases.
This bug probably caused the bugs in the solid 2D BSP tree
that I never managed to find in the past.
- Did an optimization reported to me by Norman Kramer with
regards to backface culling polygons. This happens throughout
CS and should increase performance a tiny bit (maybe not
noticable).
- Removed a few unneeded methods in csPolyPlane. These methods
are only shortcuts to csPlane3 and are a little confusing
to have. Removed csPolyPlane::VisibleFromPoint(),
csPolyPlane::Classify() and csPolyPlane::Distance().
- Added a few const methods to csPoly2D as well.
- Added a speed improvement to PVS. Before considering an
occluder (octree node) and the contents of that occluder we
first cast a shadow from that occluder on the plane. If the
shadow is non-existant (i.e. the plane is too far away from the
node) then the node will not be considered as a potential
occluder. If the shadow does exist then CS will also first test
it against the c-buffer on the plane to see if that part of
the c-buffer still contains unshadowed parts. If not then it
makes no sense to consider this occluder either.
410 lines of code changed in:
Newest radiosity version. Works for portal levels. Now source patch size
can be specified, say at 16x16 lumels. It allows radiosity to work in
16x16 lightmapsize mode. Default is 2x2 lumels, but cryst.cfg has a 16x16
lumels. Note that the destination patch size is still 1x1 lumel, thus shadows
are perfect, and lightmaps smooth.
154 lines of code changed in:
Added line needed to compile in Linux/ia-64 platform. Currently
maps the ia64 to "PROC = UNKNOWN"
1 lines of code changed in:
oops, small fix.
1 lines of code changed in:
New files for ogl3d which didnt go in first time around
2322 lines of code changed in:
- rewrote the ogl backbuffer dynamic texture implementation, it now
inherits from csGraphics3DOGLCommon and implements a dummy
iGraphics2D which transforms vertex info to lower bottom left
subregion of back buffer, and reports correctly width and height
information. This has required splitting the old ogl_g3d.* into
ogl_g3dcom.* and ogl_g3d.* Also two new private functions are
added SharedInitialize and SharedOpen which have the same
functionality as those in the software drivers.
The engine now renders to backbuffer
textures, but they are still inverted and have corrupt colour
information.
- Added verbose visual information reporting to glx. Now reports
about auxiliary buffers and properly fills in pfmt.
- The ogl texture manager now detects and deals with maximum texture
constraints i.e. my voodoo2's 256x256 :)
- Removed old software dynamic texture implementation.
- Small fixes for canvas/common & dtsimple
511 lines of code changed in:
Fixed a crasher in csSystemDriver::Initialize() where it was trying to
dereference the null pointer.
3 lines of code changed in:
Clip blocks as needed.
27 lines of code changed in:
Removed myapp functions. Replaced it by chopping up several functions into finer details and making them virtual.
233 lines of code changed in:
Fixed bug 106203 on SF. Test for coplanar polygons at startup
was wrong. Should be ok now.
28 lines of code changed in:
Split octree.h into octree.h and pvs.h. Was getting a bit big.
6 lines of code changed in:
Moved large part of history.txt to history.old again.
3250 lines of code changed in:
Fixed a bug in the iterator code of the new csHashMap class.
25 lines of code changed in:
- Added csCamera::GetDefaultInvFOV() too. Fixed MazeD and csgame
for the csCamera changes.
- Changed csPolygon3D::Covers() to csPolygon3D::Overlaps() as
this is actually what the function is calculating (and needs
to calculate). Suggested by Norman Kramer.
- Added new csHashMap class to csutil. This is the first version of
a new hashtable class that can be used for several things.
This is untested code right now.
339 lines of code changed in:
now live in glide.cfg
0 lines of code changed in:
glide config that is read by driver version 2 and 3
7 lines of code changed in:
- Made almost all variables in csCamera private and added some
accessor functions.
- Made csCamera::SetFOV() virtual and override it in
csRenderView::SetFOV() so that we can calculate the angle of the
FOV in degrees there. This is needed for the terrain engine.
- Use the new angle for FOV in terrain engine.
- Fixed terrain engine so that the correct forward facing vector
is used.
- Fixed terrain engine so that it will run correctly on software
renderer. This will make the OpenGL version slower so this is
a temporary fix until we implement a better solution.
171 lines of code changed in:
Pages: << Previous 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 Next >>
Generated by StatCvs v0.2-dev