Laurent Merckx
741cd5ddc7
GRIM: use GL_UNSIGNED_SHORT for glDrawElements instead of GL_UNSIGNED_INT (not supported for GLES <= 2)
2020-11-12 05:58:36 +01:00
Bastien Bouclet
23339184ce
GRIM: Clean up float data loading
2018-04-14 11:49:35 +02:00
Vincent Pelletier
84f83fe6ea
ALL: Rename get_float to READ_LE_FLOAT
...
For consistency with other functions/macros from common/endian.h .
2017-05-12 13:57:16 +00:00
Bastien Bouclet
14b5763408
GRIM: Fix memory leaks related to EMI models
2016-07-12 06:16:36 +02:00
Christian Krause
6d226501b5
EMI: Implement mesh-specific alpha values
...
- if Lua_V2::SetActorGlobalAlpha() is called with a mesh name,
set a mesh-specific alpha value / mode
- use this alpha value in drawEMIModelFace()
- fixes the problem that the whole actor vanishes in some scenes
(e.g. when entering or leaving the porch of the of LUA bar)
2015-02-17 01:57:07 +01:00
Christian Krause
ce3d8bd81d
EMI: Use static lights for overworld actors
...
Overworld actors, e.g. the load/save menu or the inventory wheel
should not use the lights of the current scene for lighting.
This fixes the bug that the screenshots of the load menu
were dimmed to various levels depending on the current scene.
2014-11-22 16:58:43 +01:00
Joseph Jezak
c0a598e7ad
EMI: Remove clamping from prepareTextures.
2014-08-16 19:41:27 -04:00
Christian Krause
4204b2649c
EMI: clamp specialty textures
...
The specialty textures which are used in the intro need to be clamped
to avoid dark lines between the tiles.
2014-08-14 02:59:00 +02:00
Joni Vähämäki
8d3ef741cd
EMI: Print information to debug channel if an unknown sprite or texture flag is encountered.
2014-08-12 17:46:51 +03:00
Joni Vähämäki
18df8a29f8
EMI: Disable lighting for actors that have lightMode == LightNone in OpenGLS.
2014-08-12 17:46:49 +03:00
Joni Vähämäki
9a87fa5d51
EMI: Parse per-texture blending mode from model data.
2014-08-12 17:46:42 +03:00
Joseph Jezak
60fa48490e
EMI/GRIM: Rename getBoundingBoxPos to getScreenBoundingBox to better describe the behavior.
2014-07-30 15:23:53 -04:00
Christian Krause
1e82136592
EMI: Implement screenshot thumbnails for savegames
2014-07-16 23:18:43 +02:00
Joni Vähämäki
88ec1d5285
EMI: Implement lighting for OpenGL Shaders renderer.
2014-07-05 14:09:56 +03:00
Joel Teichroeb
854618ae0f
EMI: Remove doublefreeing of materials.
...
I think there are cases where things are not all freed, but something else
is going wrong causing issues here.
2014-06-20 15:15:40 -07:00
Joel Teichroeb
a6a2cb71d4
EMI: Free more memory properly
2014-06-20 11:00:44 -07:00
Joel Teichroeb
bdfea0265b
Merge pull request #932 from Akz-/emi-skinning-fix
...
EMI: Fix vertex skinning
2014-06-20 08:40:08 -07:00
Joel Teichroeb
a539832c78
Merge pull request #910 from JoseJX/FixGLTextureParams
...
EMI: Clamp sprites, repeat other textures.
2014-06-20 08:30:44 -07:00
Joseph Jezak
df3d63fc24
EMI: Add support for clamping sprite textures and repeating other textures.
2014-06-18 22:19:42 -04:00
Joni Vähämäki
911ee12d23
EMI: Allow vertices to be associated with multiple joints.
2014-06-17 03:49:28 +03:00
Joni Vähämäki
07009b7dad
EMI: Preserve light color when clamping to [0-1] range.
...
This makes the light color match the original more closely. The effect of this can be seen for example on Otis' shirt in set mel as well as on the contract on Elaine's table in set gmi.
2014-06-16 16:19:22 +03:00
Joni Vähämäki
647458a6d0
EMI: Avoid square root in light distance check.
2014-06-16 15:42:27 +03:00
Joni Vähämäki
690845515e
EMI: Precompute the vector of enabled lights and the hasAmbient flag.
2014-06-16 15:42:26 +03:00
Joni Vähämäki
360c6ee95f
EMI: Implemented SetActorLighting.
2014-06-16 15:42:25 +03:00
Joni Vähämäki
b5cdd1240f
EMI: Only draw models for actors inside the view frustum.
...
This adds math classes for doing frustum culling in software. These could be used for optimizing performance in many other places as well. For example, if an actor is outside the view frustum, it may not be necessary to do expensive keyframe animation and vertex skinning calculations for that actor.
2014-06-16 15:42:18 +03:00
Joni Vähämäki
8f9f541f17
EMI: Implemented dynamic lighting for models.
...
Lighting is done by calculating vertex colors in software, since the attenuation model used in EMI cannot be simulated with OpenGL fixed function lighting. The original game does the lighting this way as well. Ideally for the modern shader-based renderer a shader would be used for this instead.
2014-06-16 15:41:06 +03:00
Joni Vähämäki
af7bc0679c
EMI: Use a hash map for joint lookup by name.
2014-06-15 03:13:29 +03:00
Joel Teichroeb
0f3da43694
GRIM: Change NULL to nullptr.
2014-05-30 17:43:08 -07:00
Pawel Kolodziejski
8759900b6a
ALL: synced with ScummVM
2014-04-05 18:18:42 +02:00
Christian Krause
71a44ba28a
Merge pull request #797 from chkr-private/collision-fixes
...
Collision fixes
2014-01-14 14:48:52 -08:00
Ingo van Lil
3efbe58ebf
EMI: Store materials in costume, not in mesh
...
When multiple meshes in an EMI costume use the same material each will have
its own Grim::Material instance. If a material used by multiple meshes is
changed by a texi chore the instances will become inconsistent.
With this patch materials are managed by the costume, and there will only
be one instance of each reference material.
2013-12-24 00:50:13 +01:00
Ingo van Lil
d8d9614baa
EMI: Separate radius and center for mesh collision sphere
2013-12-22 03:20:56 +01:00
sietschie
98e9b41010
EMI: Implement GetBoundingPos for EMIModel
...
Added the ability to compute the bounding boxes of models so that the
text can be correctly placed near the actors.
2013-12-10 17:19:07 +01:00
Dries Harnie
df481915f8
EMI: Add GfxBase::updateEMIModel
2013-11-05 07:30:02 -08:00
Dries Harnie
d97ff82dea
GRAPHICS: CreateModel in GfxBase
2013-11-05 07:29:40 -08:00
Einar Johan Trøan Sømåen
fe3883cecd
GRIM: Reformat code to be closer to convention.
2013-07-09 21:12:55 +02:00
Dries Harnie
71c2e44983
EMI: Read binary data in little-endian format
2013-06-04 21:21:26 +02:00
Dries Harnie
636a858ae5
EMI: Remove unused EMIModel::_bones
2013-06-04 20:29:10 +02:00
Einar Johan Trøan Sømåen
ccce470e9c
GRIM/EMI: Initialize and delete _boneNames.
2013-04-21 14:54:18 +02:00
Paweł Kołodziejski
175620b62a
ALL: change license headers from LGPL to GPL, and few updates
2012-12-19 23:15:43 +01:00
Joel Teichroeb
233566c615
GRIM: Fix a few small type warnings
2012-11-18 12:14:51 -08:00
Dries Harnie
ae24f4f8bb
EMI: Don't allow setTex with out of range index
2012-09-01 17:32:55 +02:00
Joel Teichroeb
78ec6f4aa9
EMI: Implement Specialty Textures in OpenGL
2012-04-12 17:59:41 -07:00
Joel Teichroeb
7f4f5b8ca8
EMI: Reorganized face drawing slightly
2012-03-25 16:44:44 -07:00
Joel Teichroeb
c45ebbb6c5
EMI: Properly handle more types of meshes
2012-03-25 08:12:30 -07:00
Joel Teichroeb
1226e45ac3
EMI: Initial work on getting costumes to draw animations.
...
Also, an initial split-off for EMI from the costume-class,
now uses it as a base class. (somaen)
2012-02-02 22:01:09 +01:00
Einar Johan T. Sømåen
99520661cb
EMI: Complete the skeleton setup
2012-01-31 17:00:51 +01:00
Einar Johan T. Sømåen
1e2858bc34
EMI: Connect up the animated vertices to the drawing.
2012-01-31 00:14:26 +01:00
Einar Johan T. Sømåen
a2027a48c9
EMI: Make modelemi load the bone-info contained in the meshbs.
2012-01-30 22:59:18 +01:00
Einar Johan T. Sømåen
f4c6474051
EMI: Make modelemi use vector's readFromStream.
2012-01-30 22:32:28 +01:00