This issue is caused by texelFetch which does not take wrapping options into account as it uses unnormalized uv coordinates to access a texel. A hack was made to do manual wrapping in the shader. This is acceptable because texture wrap mode is always treated as "repeat" elsewhere in 3D view in blender.
Thanks to Morten Mikkelsen for pointing out the cause of the issue and providing the fix.
This commit introduces bicubic bump map capabilities for the viewport for OpenGL 3.0+ capable GPUs.
To use the functionality change the bump mapping method to "best quality"
Previous "best quality" setting becomes "medium quality" now.
For non OpenGL 3.0 GPUs this becomes the same as "medium quality"
Also:
* added tooltip descriptions to the bump method settings.
* modified the shader to ommit extraneous matrix multiplications for matrices already provided by OpenGL.
Bicubic shader by Morten Mikkelsen. Thanks a lot!
Oh...and FIRST!
Now, compositing, shading and texture nodes have a consistent muting system, with default behaving as previous (for compo), and which can be optionaly customized by each node.
Shader nodes are also GLSL muted.
However, Cycles is currently unaware of muted nodes, will try to address this…
shader = gpu.export_shader(scene,material)
Returns the GLSL shader that blender generates to produce the visual effect
of material in scene for the purpose of reusing the shader in an external engine.
This function is meant to be used in a material exporter so that the GLSL
shader can be exported entirely. The return value is a dictionary containing the
shader source code and all associated data.
The full documentation is under sphinx.
Warning: there has been an API between the patch and this commit:
uniform['lamp'] and uniform['image'] now return python reference to
ID block instead of ID name as before. The X3D exporter that uses this
function must be adapted.
was exporting normal maps with red and green channel inverted
relative to the geometry it actually exports.
This change makes blender export normal maps
which are very similar to most tools out there.
patch by Morten S. Mikkelsen
the two files mikktspace.h and mikktspace.c. These are standalone files
which can be redistributed into any other application and regenerate the
same tangent spaces. The implementation is independent of the ordering
of faces and the vertex ordering of faces.
older GLSL versions (< 1.3)
Thanks Matthew M:
- adding mat3 from ma4 function
- removal of transpose()
And I've hacked in myself a textureSize() replacement, the image
size gets passed on to function now.
the features that are needed to run the game. Compile tested with
scons, make, but not cmake, that seems to have an issue not related
to these changes. The changes include:
* GLSL support in the viewport and game engine, enable in the game
menu in textured draw mode.
* Synced and merged part of the duplicated blender and gameengine/
gameplayer drawing code.
* Further refactoring of game engine drawing code, especially mesh
storage changed a lot.
* Optimizations in game engine armatures to avoid recomputations.
* A python function to get the framerate estimate in game.
* An option take object color into account in materials.
* An option to restrict shadow casters to a lamp's layers.
* Increase from 10 to 18 texture slots for materials, lamps, word.
An extra texture slot shows up once the last slot is used.
* Memory limit for undo, not enabled by default yet because it
needs the .B.blend to be changed.
* Multiple undo for image painting.
* An offset for dupligroups, so not all objects in a group have to
be at the origin.