Thread overview | ||||||||
---|---|---|---|---|---|---|---|---|
|
July 01, 2017 D, Game Development, GLSL, Math | ||||
---|---|---|---|---|
| ||||
(Void-995) Hi, everyone. I'm pretty excited with what have D to offer for game development, especially meta programming, traits, object.factory, signals and bunch of other neat things that may save a lot of time. Also, i saw support for vector data types and simd, which sounds awesome. The question is, can i use simd as base to extend it's syntax for making something like GLM for C++? I mean extending existing types with new operators and such to have GLSL/HLSL like syntax for basis math operation in D? Maybe someone did that already? |
July 01, 2017 Re: D, Game Development, GLSL, Math | ||||
---|---|---|---|---|
| ||||
Posted in reply to Void-995 | 01.07.2017 22:07, Void-995 пишет: > (Void-995) Hi, everyone. I'm pretty excited with what have D to offer for game development, especially meta programming, traits, object.factory, signals and bunch of other neat things that may save a lot of time. Also, i saw support for vector data types and simd, which sounds awesome. The question is, can i use simd as base to extend it's syntax for making something like GLM for C++? I mean extending existing types with new operators and such to have GLSL/HLSL like syntax for basis math operation in D? Maybe someone did that already? Look at gfm https://code.dlang.org/packages/gfm |
July 01, 2017 Re: D, Game Development, GLSL, Math | ||||
---|---|---|---|---|
| ||||
Posted in reply to drug | On Saturday, 1 July 2017 at 19:16:12 UTC, drug wrote:
> 01.07.2017 22:07, Void-995 пишет:
>> (Void-995) Hi, everyone. I'm pretty excited with what have D to offer for game development, especially meta programming, traits, object.factory, signals and bunch of other neat things that may save a lot of time. Also, i saw support for vector data types and simd, which sounds awesome. The question is, can i use simd as base to extend it's syntax for making something like GLM for C++? I mean extending existing types with new operators and such to have GLSL/HLSL like syntax for basis math operation in D? Maybe someone did that already?
> Look at gfm
> https://code.dlang.org/packages/gfm
Looking good, but I'm thinking more about 1:1 GLSL syntax (main reason - rapid prototype of GLSL/HLSL/OpenCL in D and code portability back and forward basing on usage) and heavy depending on SIMD. Just math and nothing else. Also may be a nice excersise for myself.
|
July 02, 2017 Re: D, Game Development, GLSL, Math | ||||
---|---|---|---|---|
| ||||
Posted in reply to Void-995 | On Saturday, 1 July 2017 at 19:23:57 UTC, Void-995 wrote: > On Saturday, 1 July 2017 at 19:16:12 UTC, drug wrote: >> 01.07.2017 22:07, Void-995 пишет: >>> (Void-995) Hi, everyone. I'm pretty excited with what have D to offer for game development, especially meta programming, traits, object.factory, signals and bunch of other neat things that may save a lot of time. Also, i saw support for vector data types and simd, which sounds awesome. The question is, can i use simd as base to extend it's syntax for making something like GLM for C++? I mean extending existing types with new operators and such to have GLSL/HLSL like syntax for basis math operation in D? Maybe someone did that already? >> Look at gfm >> https://code.dlang.org/packages/gfm > > Looking good, but I'm thinking more about 1:1 GLSL syntax (main reason - rapid prototype of GLSL/HLSL/OpenCL in D and code portability back and forward basing on usage) and heavy depending on SIMD. Just math and nothing else. Also may be a nice excersise for myself. "Changing the syntax" can be done (e.g. https://github.com/p0nce/intel-intrinsics) You'll want to look at the operator overloading that can be done in D (spec https://dlang.org/spec/operatoroverloading.html) As a side note: I'll soon be starting work on DCompute[1] again (Honours thesis due tomorrow), integrating John Colvin's CLWrap among many other things. [1]https://github.com/libmir/dcompute |
July 02, 2017 Re: D, Game Development, GLSL, Math | ||||
---|---|---|---|---|
| ||||
Posted in reply to Void-995 | On Saturday, 1 July 2017 at 19:07:48 UTC, Void-995 wrote: > can i use simd as base to extend it's syntax for making something like GLM for C++? You can use simd to implement something like GLM, but extending the syntax of SIMD will prove more difficult. vector types are a bit different in LDC and DMD, also DMD 32-bit won't support D_SIMD. https://github.com/jkrempus/pfft is the only library I know that abstracts over the varied D SIMD capabilities, and possibly work with all compilers. |
July 02, 2017 Re: D, Game Development, GLSL, Math | ||||
---|---|---|---|---|
| ||||
Posted in reply to Void-995 | On Saturday, 1 July 2017 at 19:23:57 UTC, Void-995 wrote:
>
> Looking good, but I'm thinking more about 1:1 GLSL syntax (main reason - rapid prototype of GLSL/HLSL/OpenCL in D and code portability back and forward basing on usage) and heavy depending on SIMD. Just math and nothing else. Also may be a nice excersise for myself.
You can just depend on the subpackage gfm:math.
Is 1:1 GLSL syntax that good? In GLSL:
- per-item max is just called "max" which clashes with Phobos. Most GLSL function names clash with Phobos which creates errors when both are imported.
- mat3x4 is a 3 column by 4 rows types, which is kind of a trap.
- vec4 does not say it's 4 floats whereas vec4f does
- "lerp" might be a better name than "mix"
- etc...
|
Copyright © 1999-2021 by the D Language Foundation