Vladimír Vondruš
dedf36941c
Primitives: hint on MeshTools for converting into indexed meshes.
6 years ago
Vladimír Vondruš
c5e70c40eb
MeshTools: ensure proper assert is printed in compressIndices().
6 years ago
Vladimír Vondruš
b785a8ac69
MeshTools: generateIndices() operating directly on a MeshData.
6 years ago
Vladimír Vondruš
b57a9f1027
MeshTools: tools for generating index buffers out of various primitives.
6 years ago
Vladimír Vondruš
99bc8deaf0
GL: reorder tests to match execution order.
6 years ago
Vladimír Vondruš
e455a6731a
GL: add a NoCreate Shader constructor.
...
It wasn't there because I thought it was not needed. I need it now.
6 years ago
Vladimír Vondruš
1a53976447
Shaders: delete duplicate code also in shader tests.
...
Half done in 2d1d9f4b29 , but these got
forgotten.
6 years ago
Vladimír Vondruš
fff1b6e5cf
Shaders: delete 8 kB of needless shader code.
...
I get the best ideas on the shitter. I should go there more often.
6 years ago
Vladimír Vondruš
3711125b7d
Animation: now that STL is gone, Player can be noexcept-movable.
...
Reverts 2c5f97dacd . Use C++, they said.
Trust the vendors, they said.
6 years ago
Vladimír Vondruš
b31d7b1f03
Animation: there's no need to use STL in Player internals anymore.
...
Keeping std::vector only in one documentation snippet to not confuse
users too much -- growable arrays are rather new, after all.
6 years ago
Vladimír Vondruš
9bb590280a
GL: keeping copy but deleting a move is ... just wrong.
...
I blame my 2013 self who didn't have so clear idea about move semantics
yet.
6 years ago
Vladimír Vondruš
a4020e3dbc
DebugTools: there are no binormals, only bitangents.
...
There's just one normal, but several tangents, so.
6 years ago
Vladimír Vondruš
f3a92c2afb
Shaders: rethink generic attribute allocation from scratch.
...
This adds binormals, object IDs and instanced transformation, but has to
break existing locations in order to provide new guarantees.
6 years ago
Vladimír Vondruš
159c4ece50
Trade: add a TODO.
6 years ago
Vladimír Vondruš
8a2a7e4547
Trade: implement support for object IDs in MeshData.
6 years ago
Vladimír Vondruš
5e02e0ce8d
Trade: support strided arrays in MeshData::indicesInto().
...
There's no point in restricting this.
6 years ago
Vladimír Vondruš
03b038ccfe
Trade: use Math::castInto() inside indicesInto().
...
This code was apparently done before the batch casters were a thing. Now
it's no reason to do the same in two places, additionally in the future
the castInto() could get SIMD-optimized and this can benefit from that.
6 years ago
Vladimír Vondruš
f3566f637f
Math: add integer-to-integer castInto() variants also.
...
Currently one of the types is always 32-bit and preserving signedness,
because that's what I need right now. Other variants might get added
later.
6 years ago
Vladimír Vondruš
f4bca9b51e
Trade: implement support for tangents and bitangents in MeshData.
...
Originally wanted to offload this to someone else, but then realized I
need those for generic vertex attribute definitions, which I need for
instancing, which I need now. So here it is, at the bottom of the
dependency chain.
6 years ago
Vladimír Vondruš
12c5476f14
doc: Vulkan does have 8-bit indices now.
6 years ago
Vladimír Vondruš
d8d6a2718c
Trade: recognize matrix VertexFormats in MeshData.
6 years ago
Vladimír Vondruš
db16201fbe
GL: support converting matrix VertexFormats to DynamicAttribute as well.
6 years ago
Vladimír Vondruš
e983a2a168
GL: make it possible to describe matrix attributes with DynamicAttribute.
...
Not sure why this wasn't done when originally implementing those.
6 years ago
Vladimír Vondruš
da323625b2
GL: rename Attribute::VectorCount to Vectors for consistency.
...
Deprecated alias kept for compatibility, as usual.
6 years ago
Vladimír Vondruš
e3fcf9db57
GL: support custom stride between vectors in matrix Attributes.
...
Needed so e.g. Matrix3x3s can have four-byte-aligned columns.
6 years ago
Vladimír Vondruš
19787a4282
GL: improve test coverage of the Attribute classes a bit.
6 years ago
Vladimír Vondruš
b3b61b22e4
Add matrix vertex formats.
6 years ago
Vladimír Vondruš
b7da1323c8
Minor cleanup.
6 years ago
Vladimír Vondruš
0b2891936f
Doc++
6 years ago
Vladimír Vondruš
f74fd5cb08
Add typedefs for half-float and 8-/16-bit packed matrices.
6 years ago
Vladimír Vondruš
9f73be569a
Trade: adapt tests etc to PhongMaterialData rework.
6 years ago
Vladimír Vondruš
700ef3cca5
Trade: rework and extend PhongMaterialData.
...
It now supports both color+texture (instead of just one or the other)
which made it much simpler to use (and implement as well), also can
reference normal maps and specify texture coordinate transformation now.
The old APIs are depecated, but no tests or other code is updated yet in
order to ensure everything continues to work as before.
6 years ago
Vladimír Vondruš
0c7e3bf96a
Shaders: minor cleanup.
6 years ago
Vladimír Vondruš
9a06b3515b
Shaders: implement texture coordinate transformation for all shaders.
...
Except MeshVisualizer and VertexColor, which don't have any texturing,
so there it's not needed. In most cases the tests are reusing existing
ground truth files and only modifying transformations / flipping images.
6 years ago
Vladimír Vondruš
a35d53118b
Shaders: name the textureCoordinates attribute consistently in GLSL.
...
Interestingly enough, on Phong it was named textureCoords while on the
C++ side it was asking for textureCoordinates, and I don't remember this
being an issue *ever*, on any driver.
6 years ago
Vladimír Vondruš
0329721405
Shaders: fix default alpha mask in a zero-light Phong on GLES.
...
A corner case of a corner case, of a corner case. Adapted the test to
check the defaults as well.
6 years ago
Vladimír Vondruš
27f0c34372
Shaders: remove last forgotten deprecated bits.
...
Leftover from b4f88f00ab .
6 years ago
Vladimír Vondruš
1bc4101100
Shaders: make method chaining return types consistent in templates.
...
Not sure why C++ allows either, it only leads to inconsistency.
6 years ago
Vladimír Vondruš
1758ec0a7f
doc: update changelog.
6 years ago
Vladimír Vondruš
de9c289328
Adapted all code and doc snippets to GL library changes.
6 years ago
Vladimír Vondruš
32d49db402
GL: mesh.draw(shader) -> shader.draw(mesh).
...
As usual, the old APIs are still present, but marked as deprecated.
Existing code is not updated yet to ensure I didn't break anything with
this.
This way it's much more intuitive and makes the code shorter and nicer
in many cases. Shaders are now also able to hide irrelevant
draw/dispatch APIs to avoid accidents.
6 years ago
Vladimír Vondruš
0e2a5cce37
MeshTools: fix a compiler warning.
6 years ago
Vladimír Vondruš
522ac06551
oackage/archlinux: XZ is cancelled.
6 years ago
Vladimír Vondruš
236954ad16
CMake: MeshTools now depends on Trade unconditionally.
...
Isn't it great when I discover this five minutes before merging to
master?
6 years ago
Vladimír Vondruš
a4bf0e61a1
MeshTools: option to disable unknown attribute warnings in compile().
6 years ago
Vladimír Vondruš
715f6114de
MeshTools: reorder code.
...
No functional change.
6 years ago
Vladimír Vondruš
393ba7a088
MeshTools: implemented concatenate() and concatenateInto().
6 years ago
Vladimír Vondruš
7857388949
MeshTools: implemented combineFaceAttributes().
6 years ago
Vladimír Vondruš
9a6ef0a220
MeshTools: new interleavedData() utility.
6 years ago
Vladimír Vondruš
06b82755ad
Primitives: use compile-time attribute definitions where possible.
...
Now possible in all cases, except for grid, where the combination count
is too large to be practical, even more so with the introduction of
tangents in the future.
6 years ago