Vladimír Vondruš
b16861693a
Primitives: tangents in the 3D grid primitive.
6 years ago
Vladimír Vondruš
1b776e13bc
Primitives: tangent support in the 3D circle primitive.
6 years ago
Vladimír Vondruš
a099a57464
Primitives: implement tangent generation in spheroid primitives.
6 years ago
Vladimír Vondruš
ca5beb432b
Primitives: make internal spheroid generator less rigid.
...
To allow introducing tangents and possibly other attributes. This means
the attribute data isn't defined at compile time anymore, but it
would make further additions too annoying to do due to combinatorial
explosion of all variants.
6 years ago
Vladimír Vondruš
ff3e771231
Primitives: use the exported growable allocator from Trade.
...
So the primitives can be used inside plugins without the risk of
dangling deleter pointers.
6 years ago
Vladimír Vondruš
1b21e4e7ba
Primitives: switch to an enum set for texturable primitives.
...
Making room for GenerateTangents in 3D, and keeping the 2D ones
consistent with 3D. Also renamed GenerateTextureCoords to
GenerateTextureCoordinates in the remaining places to be consistent with
naming in the rest of the APIs.
6 years ago
Vladimír Vondruš
5b569942b8
Shaders: tangent space visualization in MeshVisualizer3D.
6 years ago
Vladimír Vondruš
c880e6293a
Shaders: enable noperspective in MeshVisualizer properly.
...
This makes existing tests slightly broken, which is good (if it
wouldn't, the thresholds would be too huge). Since the addition of ES3.2
geometry shaders (which broke this) happened long before there were
rendering tests for shaders, this breakage wasn't caught until now. Of
course proper tests would include the perspective case from the previous
commit since the very beginning, but that's hard to do when you're
testing long after the code was written.
The test files are now RLE-encoded, which makes them significantly
smaller (tho I assume Git would further compress both anyway). Not
updating existing files to RLE yet to avoid repo history bloat, doing
that the next time they get changed.
6 years ago
Vladimír Vondruš
73b6d1084a
Shaders: test perspective interpolation in MeshVisualizer wireframe.
...
Broken, sigh.
6 years ago
Vladimír Vondruš
dd07145fa2
GL: add a GL::AbstractShaderProgram::maxGeometryOutputVertices() query.
6 years ago
Vladimír Vondruš
74c75178de
Shaders: add a 2D variant of MeshVisualizer.
6 years ago
Vladimír Vondruš
566713e68c
Shaders: improve MeshVisualizer docs a bit.
6 years ago
Vladimír Vondruš
350a79d324
TgaImporter: make error messages consistent.
6 years ago
Vladimír Vondruš
d01f8ba3fe
TgaImporter: minor test cleanup.
6 years ago
Vladimír Vondruš
132359b78f
TgaImporter: make expected test output more explicit.
...
Otherwise we can't be sure we have the right slice.
6 years ago
Vladimír Vondruš
440a3f96ad
TgaImporter: implement RLE decoding.
...
I need a bunch of new test images for shader tests and this was rather
easy to do, considering RLE images are ten times smaller. Not doing the
converter side yet due to time constraints, temporarily relying on
imagemagick to handle that (StbImageConverter does RLE also, but
interestingly it produces larger files than imagemagick).
6 years ago
Vladimír Vondruš
8c837be26f
TgaImageConverter: same.
6 years ago
Vladimír Vondruš
0388364128
TgaImporter: STL algorithms only make you write longer and slower code.
...
And more error-prone, harder-to-debug and complex. Seriously, why even
bother.
6 years ago
Vladimír Vondruš
c56ccddd61
TgaImporter: add a comment for future me.
6 years ago
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