Christoph Oelckers
b6af4677f3
- implemented model precaching.
2016-05-03 18:14:16 +02:00
Christoph Oelckers
f7fda94ec9
- changed model data to store models and textures by index instead of by pointer.
...
The indices are needed for efficient precaching and actual changes to the logic are minor so that this was the best option overall.
2016-05-03 15:45:21 +02:00
Christoph Oelckers
4d7be0e20e
- added software interpolation as a fallback for models.
...
This is not tested yet so no guarantees!
2016-05-03 13:10:00 +02:00
Christoph Oelckers
37bb816850
- some adjustments for voxels.
2016-03-24 16:10:17 +01:00
Christoph Oelckers
4f08b20df5
- consider pixel stretching when rendering models. For non-voxels an aspect ratio of 1:1 must always be assumed while voxels need to be stretched so that 1 voxel unit == 1 map unit.
2014-12-31 12:53:29 +01:00
Christoph Oelckers
f8016bef86
- fixed: voxels didn't set their index count.
2014-10-24 11:52:45 +02:00
Christoph Oelckers
e5cd90f323
- use separate vertex buffers per model to avoid large memory usage peaks. Also delete the geometry data for the models once it has been copied into the vertex buffer.
2014-10-24 11:43:25 +02:00
Christoph Oelckers
618c23303f
- fixed: The interpolation factor for models was never passed to the shader.
2014-10-23 09:57:27 +02:00
Christoph Oelckers
4bb320a27c
- route texture binding through the renderstate class for better control. Currently it's just a direct passthrough but this will change.
2014-09-09 12:00:42 +02:00
Christoph Oelckers
1050013017
major cleanup of the texture manager:
...
- use sampler objects to avoid creating up to 4 different system textures for one game texture just because of different clamping settings.
- avoids flushing all textures for change of texture filter mode.
- separate sprite and regular dimensions on the material level to have better control over which one gets used. It's now an explicit parameter of ValidateTexture. The main reason for this change is better handling of wall sprites which may not be subjected to such handling.
- create mipmaps based on use case, not texture type.
- allows removal of FCloneTexture hack for proper sharing of the same sprite for decals and other purposes.
- better precaching of skyboxes.
2014-08-22 23:50:38 +02:00
Christoph Oelckers
5ee626459d
- use model vertex buffer to render voxels.
2014-06-30 18:57:24 +02:00
Christoph Oelckers
ca76c2525e
- more vertex buffer stuff for models, still not tested.
2014-06-19 22:24:33 +02:00
Christoph Oelckers
412d6499d9
- removed the voxel vertex buffer because it needs to be gone before implementing a model vertex buffer.
2014-06-19 14:46:55 +02:00
Christoph Oelckers
03916d75de
- cleaned up MD3 rendering and merged RenderFrame and RenderFrameInterpolated into one function.
2014-06-19 13:58:49 +02:00
Christoph Oelckers
8d9a90cd22
- rewrote sky dome rendering to use a static vertex buffer if not on OpenGL 2.x.
2014-06-14 01:24:28 +02:00
Christoph Oelckers
978ace241c
- removed all code that mixes together the different lighting methods. Now everything goes through the 3 different light parameters in the render state.
...
- removed cm parameter from many functions.
2014-05-11 21:47:54 +02:00
Christoph Oelckers
7d3beb665b
- rewrote vertex buffer code to require GL_ARB_BUFFER_STORAGE extension.
...
This means it won't work anymore on anything that doesn't support OpenGL 4.0, but I don't think this is a problem. On older NVidia cards performance gains could not be seen and on older AMDs using the vertex buffer was even worse as long as it got mixed with immediate mode rendering.
2014-05-10 21:47:07 +02:00
Christoph Oelckers
69af73d9b9
- alternative configuration using GLEW to get extension functions. This requires GL 2.0, though so it won't be promoted to the mainline for the time being.
...
- removed all pre GL 2.0 support.
2014-04-06 14:35:44 +02:00
Christoph Oelckers
5f08111a34
- fixed: The GL voxel palette loader needs to handle the case when the voxel has no own palette and used the game's base palette instead. Also added an implementation for GetPixels because this is used when a voxel needs a translated palette.
2013-09-28 23:33:55 +02:00
Christoph Oelckers
2885056f46
- moved GLEXT API out of RenderContext struct.
2013-09-03 18:29:39 +02:00
Christoph Oelckers
26943fe3fd
- removed gl interface function pointers for all OpenGL32.dll entry points.
2013-09-03 14:05:41 +02:00
Christoph Oelckers
399d0974ab
- added GL render as of SVN revision 1600.
2013-06-23 09:49:34 +02:00