DirectXMath alternative

evilrat evilrat666 at gmail.com
Wed Dec 5 11:43:46 UTC 2018


On Wednesday, 5 December 2018 at 10:52:44 UTC, Guillaume Piolat 
wrote:
> On Wednesday, 5 December 2018 at 01:57:53 UTC, evilrat wrote:
>> On Tuesday, 4 December 2018 at 20:41:54 UTC, Guillaume Piolat 
>> wrote:
>>> On Tuesday, 4 December 2018 at 20:33:07 UTC, John Burton 
>>> wrote:
>>>> What is the best alternative for D, assuming there is 
>>>> anything?
>>>> (I want vector, matrix math for use in D3, things like 
>>>> inverting a matrix, getting perspective matrices etc)
>>>> I can program something myself if necessary but I'd prefer 
>>>> notto
>>>
>>> You have the choice between the following packages:
>>> - dlib
>>> - gfm:math
>>> - gl3n
>>
>> I was using gl3n then switched to gfm math. Try gfm, IIRC it 
>> should work without much PITA because it stores matrices 
>> row-major way, so you don't have to transpose it like with 
>> OpenGL. Can't say anything about dlib though, I tried it a bit 
>> with dagon engine, but just didn't stick for long.
>
> I think you are mistaken, gfm:math also stores matrices 
> line-major so you _have_ to transpose them.
>
> The problem with row-major is it makes matrix literals read 
> transposed vs the math notation.

Are you sure you don't confuse lines with columns?
Here it says it is row major
https://github.com/d-gamedev-team/gfm/blob/master/math/gfm/math/matrix.d#L17


>>> On Tuesday, 4 December 2018 at 20:41:54 UTC, Guillaume Piolat
>
> I think in hlsl shader language you can declare your matrices 
> to be either way anyway can't you? It's just the default that 
> is this way around?

The only real difference is the order or operations. IIRC however 
gfm tries to hide this difference and use math notation.
Another thing is memory caches - accessing row in succession will 
have better chance of cached access while accessing columns in 
most(if not all) cases will fetch more items only to discard them 
on next value.
Though I haven't ever profiled this myself to be 100% sure.


More information about the Digitalmars-d-learn mailing list