Age | Commit message (Collapse) | Author |
|
combined with the shadow option for texfaces.
|
|
state switching textures and object color, showed as flickering.
|
|
==============
* Added support for the realtime image "Anim" option for GLSL textures.
Note that "Tiles" is not supported, i.e. it doesn't scale the texture
for you, but that may even be desirable.
* Further there was some refactoring to remove duplicated and unused
opengl texture code for GLSL.
|
|
==============
Various cleanups and optimizations in the game engine:
* Remove some duplication in the RAS_RenderTools, and sync the blender
and game player versions. Also avoid some opengl state changes.
* Don't make separate materials for triangles and quads, this distinction
was moved to the mesh level. Also don't take some other irrelevant tface
settings into account to avoid making more materials.
* Refactoring of mesh storage, should fix wrong normals on meshes that are
reused. It also allows for joining together nearby meshes for speed, though
that's disabled still because it doesn't work together correct yet with
ome features.
* Added a distinction for game objects to be either culled or set invisible,
previously there was only one flag, which couldn't work correct.
* For parenting to bones, where_is_pose was executed multiple times per
frame, now should be once per armature.
* Fix uninitialized intertia value in the physics system.
* Various warning fixes.
* Removed some conditionals in GLSL and other minor optimizations in the
code. Also cache opengl uniform locations, and fix an invalid memory read.
* Avoid doing some math for GLSL lamps if it is not required.
|
|
====================
* Added ObColor support, though it works different than for TexFaces.
It used a new ObColor option in the materials, which will modulate
the final color/alpha with the object color and alpha, also works
in the render engine.
* Made GLSL check the ZTransp flag. A material is now only drawn
transparent if this flag is enabled, a bit more consistent with the
render engine.
* Fix for bug #17359: crash related subsurf + editmode GLSL.
|
|
=============
* Moved GLSL setting switching functions into the game engine
python API so they work in the blender player, and can do
better state switching.
* Also fixes bug #17331, error compiling with cmake.
* For the makers of test builds: it would be great if builds of
this revision or newer for various platforms could be made
available. We want to release a file to test and benchmark
GLSL on different graphics cards, and we need test builds for
this. Thanks!
|
|
==============
* Made in game switching of GLSL options work. There is still
a one frame flicker that needs to be fixed.
* Added access to the estimated average framerate in the game
engine: GameLogic.getAverageFrameRate().
* Added acces to the blender build info from python:
Blender.Get("buildinfo")
* Various GLSL optimizations to allow more constant folding in
the glsl compiler, use glsl shadow functions to do shadow,
instead of own code, and fix an issue with opengl texture
color range.
|
|
=============
* Added options to disable lights, shaders, shadows, ramps,
nodes and textures other than col/alpha for GLSL, in the
Game menu.
* These have python access too to switch them in game, but
it doesn't work correct yet with display lists enabled.
* Fix issue with light lagging behind, debug stats drawing in
wrong color, and a number of other small fixes.
|
|
====================
* Some optimizations in the glsl shader code to avoid some
matrix multiplications, and other floating point ops.
* Optimized game engine mesh deforming code a bit, and
removed a bunch of unneeded/duplicated code.
* Fix for bugs #17289 and #17295, glsl compile errors.
|
|
and opengl light state changes.
|
|
====================
* Added initial support for shadow buffers, works in the 3d view and the
game engine, but has known issues still:
* Shadow buffers are made again for each 3d viewport unnecessarily.
* No filtering.
* There was a bug with some shaders going black, but can't reproduce
it anymore?
* Added support for layer lamps, though they're still always computed
in the shader, this needs to be optimized.
* Added support for animating lamp position/rotation in the game engine.
* Fix issue with lamps giving negative light on the backside.
* Fix issue with specular + orthographic camera.
* Fix square spotlights.
* Potential workaround for a bug in the nvidia drivers with shader linking.
|
|
shaders, now it remembers the last one, should be more reliable.
|
|
====================
* GLSL in the game engine now uses the second uv layer too.
|
|
==============
Refactoring of the use of opengl extensions and other drawing code
in the game engine, and cleaning up some hacks related to GLSL
integration. These changes will be merged into trunk too after this.
The game engine graphics demos & apricot level survived my tests,
but this could use some good testing of course.
For uses: please test with the options "Generate Display Lists" and
"Vertex Arrays" enabled, these should be the fastest and are supposed
to be "unreliable", but if that's the case that's probably due to bugs
that can be fixed.
* The game engine now also uses GLEW for extensions, replacing the
custom opengl extensions code that was there. This means also that
all extensions will now always be compiled in, regardless of the
glext.h on the platform where compilation happens. Removes a lot
of #ifdef's, but the runtime checks stay of course.
* Removed the WITHOUT_GLEXT environment variable. This was added to
work around a specific bug and only disabled multitexturing anyway.
It might also have caused a slowdown since it was retrieving the
environment variable for every vertex in immediate mode (bug #13680).
* Refactored the code to allow drawing skinned meshes with vertex
arrays too, removing some specific immediate mode drawing functions
for this that only did extra normal calculation. Now it always splits
vertices of flat faces instead.
* Refactored normal recalculation with some minor optimizations,
required for the above change.
* Removed some outdated code behind the __NLA_OLDDEFORM #ifdef.
* Fixed various bugs in setting of multitexture coordinates and vertex
attributes for vertex arrays. These were not being enabled/disabled
correct according to the opengl spec, leading to crashes. Also tangent
attributes used an immediate mode call for vertex arrays, which can't
work.
* Fixed use of uninitialized variable in RAS_TexVert.
* Also in the GLSL shaders, removed conditional returns since some
graphics cards don't support this. And fix a bug with orco's not
being created in textured mode.
|
|
Some optimizations to decrease game engine startup time:
* Exporting skinned meshes was doing O(n^2) lookups for vertices and
deform weights, now uses same trick as regular meshes.
* Share GLSL shaders with the game engine so they don't have to be
recompiled. This required changes to the rasterization in the game
engine to add an option to use attributes instead of texture
coordinates.
* Some small optimizations in bullet BVH building, though could be
improved more, since it takes about 50% of startup time still in
my test .blend.
|
|
====================
* Added support for lamps and shaders. All material diffuse and
specular shaders are supported, for lamps especially area light
support is not there yet.
* Added support for these GLSL shaders in the game engine, though
it is incomplete and somewhat of a hack. Specifically all the
variables are completely static, which means moving lights, or
animating material properties will not work.
* Enabling GLSL shaders is now different. They work in textured
drawmode, and can be enabled in the Game menu with the option
"Blender GLSL Materials"
Known issues:
* The GLSL shaders don't always update correct on light changes.
* The game player appears to crash with these GLSL shaders, while
regular blender works fine.
|