Commit graph

303 commits

Author SHA1 Message Date
Vincent Pelletier
06e7aa68b0 GRIM: Correct diffuse reflectance.
Determined by keping a single directional light source enabled, as they are
not subject to attenuation (having no position), and comparing with
original software renderer.
Default DirectX material reflects all diffuse light, so 1.0f coefficient is
likely correct.
2015-05-06 19:49:42 +02:00
Vincent Pelletier
f36d2b62f8 GRIM: Drop TinyGL-only intensity divisor.
Also, divide intensity once instead of once per component.
2015-05-06 19:49:42 +02:00
Vincent Pelletier
6e996d145b GRIM: Disable specular lighting.
My initial idea that GRIM would use specular likely came from a difference
between DirectX and OpenGL lighting for spotlights: DirectX allows for an
extra penumbra angle, allowing stronger center spots while maintaining a
smooth fade (which I emulated with a fixed 2.0 exponent).
Also, specular involves an extra light color value and material definition
for specular reflection, which are not visible in game data files.
All this making the use of specular very unlikely to match original renderer.
2015-05-06 19:48:18 +02:00
Christian Krause
a8460f4f3f EMI: Check bit in mesh face flags to disable lighting
Use bit 0x20 in the mesh face flags to disable ligthing. This
fixes the problem that once a previous screen is used as
texture (e.g. in the intro or for the transition effects
in set kab when walking eastwards or westwards), it is shown
too dark due to the applied static lighting for overworld
actors.
2015-02-24 22:49:48 +01: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
ad2ce4a87e EMI: Fix memleaks caused by specialtyTextures
- delete screenshot after texture is created
- free _data[] entries in BitmapData::freeData()
- destroy _specialtyTextures[] entries in
  graphic driver's destructors
2014-12-31 15:47:36 +01:00
Pawel Kolodziejski
4166e1f4f5 GRIM: fixed compilation on AmigaOS4 2014-12-28 08:54:59 +01:00
Pawel Kolodziejski
91725ce54f GRIM: improve drawing X on Don's computer in OpenGL driver 2014-12-28 08:49:15 +01:00
Einar Johan Trøan Sømåen
f756848928 Merge pull request #1097 from somaen/emiMac
EMI: A first set of patches to improve Mac-support (German only)
2014-12-03 13:17:45 +01:00
Einar Johan Trøan Sømåen
2412047c14 GRIM/EMI: Handle 32bpp BGR in gfxOpenGL::prepareMovieFrame
This fixes the display of the Aspyr Logo in OpenGL.
2014-12-02 17:38:31 +01:00
Christian Krause
1c43404192 GRAPHICS: Reset GL's current color in drawDimPlane()
Per convention, in residualvm the default GL current color
should be (1.0f, 1.0f, 1.0f). If a function changes the color,
it is required to reset it before returning.

This fixes the issue that some videos were not correctly displayed
until the next glColor call (e.g. when drawing the sub-titles) was
issued.
2014-11-05 20:59:56 +01:00
Christian Krause
11fee3d1d4 EMI: Enable alpha blending for global alpha values of actors
This fixes the problem, that all actors with a global alpha
value < 1.0f were not drawn with the correct transparency.
2014-09-17 20:59:50 +02:00
Christian Krause
56e13b52ca EMI: Use half-transparent plane to implement dimScreen (OpenGL)
- instead of re-calculating the color values when dimming the screen,
  better draw a half-transparent plane after drawing all non-overworld
  characters
- fixes the issue that overworld actors were dimmed and that the
  pause screen is transparent when the inventory is open
2014-09-13 10:43:33 +02:00
Paweł Kołodziejski
639076bc12 Merge pull request #974 from JoseJX/BigEndian
EMI: Big endian fixes
2014-09-09 17:56:03 +02:00
Christian Krause
e2eee80716 EMI: Implement Lua_V2::SetActorLocalAlpha
- sets the alpha mode and the alpha value for single vertices
2014-09-08 09:00:21 +02:00
Joel Teichroeb
9c54ff5795 Merge pull request #1053 from Akz-/emi-shadow-fixes
EMI: Shadow fixes
2014-08-23 21:44:51 -07:00
Joel Teichroeb
6a852161c7 Merge pull request #999 from JoseJX/Camera
EMI: Keep camera as a rotation matrix and add Lua functions for changing it.
2014-08-19 17:21:43 -07:00
Joel Teichroeb
32364faacf EMI: Fix the background color when running the debugger
Fixes #982
2014-08-19 17:11:34 -07:00
Joseph Jezak
ff9f26981c EMI: Refactor to use a matrix for the camera. 2014-08-19 18:35:26 -04:00
Joni Vähämäki
851d78362d EMI: Reset color when drawing shadow planes. 2014-08-19 15:46:00 +03:00
Joni Vähämäki
915e12321c GRIM: Enable alpha test when drawing sprites. 2014-08-18 13:09:42 +03:00
Pawel Kolodziejski
e539b27af8 MATH: improve type support for viewport argument 2014-08-15 12:25:48 +02:00
Christian Krause
cbbf60d155 EMI: Check another bit in the mesh face flags to enable blending.
Bit 0x40000 in the mesh face flags (set only in the intro) should
enable blending, too. This fix lets the various screens of the intro
fade into each other.
2014-08-14 03:01:12 +02:00
Joni Vähämäki
3df07c384e EMI: Fix parsing of sprite flags. Fixes #960 2014-08-12 17:46:47 +03:00
Joni Vähämäki
6b7b6fa6e5 EMI: Do not disable writing to color buffer if an actor's sort order is >= 100.
Fixes invisible Guybrush in the set unc.
2014-08-12 17:46:46 +03:00
Joni Vähämäki
398f2afa98 EMI: Always write sprites to the depth buffer. 2014-08-12 17:46:45 +03:00
Joni Vähämäki
ee24b2c12f EMI: Parse sprite Z offset. 2014-08-12 17:46:44 +03:00
Joni Vähämäki
055f742ccc EMI: Enable alpha blending if the mesh face flags has the 16th bit set.
This fixes drawing of the shadow mesh in the set unc when Guybrush is under the lights.
2014-08-12 17:46:43 +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
Joni Vähämäki
6e96d962f8 EMI: Parse tex coords from sprite files. Fixes #978 2014-08-10 18:51:31 +03:00
Joseph Jezak
e057c003c1 EMI: Calculate the bounding box using the actor's bounding box info. 2014-08-04 11:14:28 -04:00
Joseph Jezak
372be90111 EMI: Make the bounding box coordinate orientation match grim's. 2014-08-04 11:14:28 -04:00
Joseph Jezak
e638c09ba6 GRIM/EMI: Adjust the width and height names to better reflect usage. 2014-08-04 11:14:28 -04:00
Joseph Jezak
f0b2c54a56 EMI: Only use the wear chore to find the actor's bounding box. 2014-07-30 20:56:14 -04:00
Joseph Jezak
60fa48490e EMI/GRIM: Rename getBoundingBoxPos to getScreenBoundingBox to better describe the behavior. 2014-07-30 15:23:53 -04:00
Joseph Jezak
063de3d603 EMI: Fix TGA byte order on Big Endian machines. 2014-07-29 14:33:25 -04:00
Dries Harnie
97d5bd9247 GRIM/EMI: Fix off-by-one in GfxOpenGL::readPixels 2014-07-24 15:49:01 +02:00
Pawel Kolodziejski
a39576d921 GRIM/EMI: attempt to fix over read buffer. cleanup types 2014-07-24 15:37:11 +02:00
Joseph Jezak
0866354007 GRIM/EMI: Rename setupCamera to better describe what it does. 2014-07-22 23:28:00 -04:00
Joseph Jezak
6068e94938 EMI/GRIM: Remove unsused roll parameter from setupCamera calls. 2014-07-22 23:27:56 -04:00
Joel Teichroeb
e97e61c619 Merge pull request #954 from chkr-private/savegame-screenshots
EMI: Implement screenshot thumbnails for savegames
2014-07-22 14:45:04 -07:00
Joni Vähämäki
1081471119 EMI: Implement projection shadows. 2014-07-20 21:46:14 +03:00
Christian Krause
1e82136592 EMI: Implement screenshot thumbnails for savegames 2014-07-16 23:18:43 +02:00
Pawel Kolodziejski
b80dea5a90 JANITORIAL: formating code 2014-07-14 09:33:37 +02:00
Pawel Kolodziejski
6df761e70e GRIM/OPENGL: cleanup type 2014-07-14 09:32:45 +02:00
Pawel Kolodziejski
5ece56965c GRIM/OPENGL: un-hardcode GFX operations a bit 2014-07-14 08:10:08 +02:00
Pawel Kolodziejski
0ba0bf20ca GRIM: drop SYMBIAN32 ifdef 2014-07-14 08:04:37 +02:00
Pawel Kolodziejski
39e9dcb8aa GRIM: remove _screenSize usage 2014-07-14 08:03:10 +02:00
Pawel Kolodziejski
017a67b8bc GRIM/OPENGL: added few comments to glPixelStorei usage 2014-07-14 07:51:37 +02:00
Pawel Kolodziejski
0db12d7062 GRIM/EMI/MYST3: drop usage for GLU functions for replacements 2014-07-10 07:29:01 +02:00