Releases: tipam/pi3d
obj model loader re-uses vertices
Improvement: The model loader for wavefront obj files now doesn't load duplicate vertices as it would have to if glDrawArrays was being used for rendering. glDrawElements is supposed to be faster but the change is not measurable. It will reduce GPU memory by about half.
Phong type brightening added to reflect shaders
Bug fix: Error (probably harmless) due to glEnable being used with invalid GL_TEXTURE_2D argument.
Improvements: Phong type brightening added to uv and mat _reflect shaders. Built-in mix() function used in fragment shaders (as opposed to DIY formula). Places where import * used converted to explicitly import the required tokens.
fix TextBlockColour.set_colour() and Tube texture mapping
Bug fix: TextBlockColour.set_colour() not updating blue or alpha values. Additional argument to Tube to allow it to not use Shape._lathe() but make cylindrical uv mapping on outside and inside and flat uv mapping on top and bottom.
fix Shape.rotate_to_direction()
Bug fix: Shape.rotate_to_direction() could occasionally not work in python2
Utility functions added to Shape
Bug fix: Camera.matrix_from_two_vectors() was mispelt, now has alias from wrong spelling for backwards compatibility. Logging gives reason for assertion failure if trying to do opengles function not on main thread.
Improvements: Shape has utility functions rotate_to_direction() transform_direction() and shallow_clone() allowing easier manipulation of articulated parent-child arrangements.
PexParticles, Graph, fog start distance, multi Buffer in MergeShape
Improvements: Slight speed improvements for PexParticles, util/Graph class handles some work of creating fast graphs, fog start distance can be controlled, MergeShape can create multiple Buffers each with different draw properties.
Fixes for raspbian stretch and windows py2.7.13
Bug fixes: Rasbian stretch has renamed libGLES and libEGL so this is now checked for in constants/__init__.py
A change in ctypes.WinDLL
between python 2.7.12 and 2.7.13 means unicode arguments have to be converted to str (patched back for 2.7.14!)
Improvements: Setting up Shape rotation matrix flags tidier. @properties
Shape.xyz rxryrz sxsysz cxcycz added with setters and getters.
Minor bug fixes
Removed use of numpy functions not yet available in numpypy (pypy version). Some corrections of Log. Removal of ctypes.byref() where passing an array (as already a pointer). Some out of memory checking in Buffer.
Multiple Textures on ElevationMap
Improvements: Multiple Textures can be used for ElevationMap, Texture flip can do vertical, horizontal or both.
Bug fixes: event system limit of four devices in category kbd, mouse or js increased to sixteen as it's possible to exceed previous limit.
Shadow outline for text
Improvements: Shadow system for Font and FixedString to allow text to show up against variable backgrounds. Effectively adds an outline.