Qfusion / qfusion

Source code for cross-platform OpenGL gaming engine
http://qfusion.github.io/qfusion/
333 stars 124 forks source link

Android/WebGL port of qfusion #3

Closed poVoq closed 7 years ago

poVoq commented 11 years ago

Not really a highly needed feature, but with OpenGL 2.0 ES as the new rendering target, an WebGL and/or Android port would seem feasible too.

Any plans for this?

viciious commented 11 years ago

Yes, an Android port would be nice to have, however I have no experience programming for Android platform, nor I have an Android device for hacking.

Triang3l commented 10 years ago

I'm starting to port the renderer to GLES2 and have already implemented some low-level functions (such as basic launcher functionality enough to run dedicated server and also keyboard input and opening links in browser). So, soon™.

viciious commented 10 years ago

Cool! Can't wait to see your work.

adem4ik commented 10 years ago

dedicated server on android... sounds fantastic\o/ is there any possibility to test it already?)

Triang3l commented 10 years ago

It's nothing interesting at the moment, just black screen and output to logcat :D (and you launch it with dedicated_stuffcmds.cfg which replaces the command line now). It's also unpure (both server and client) because I'm going to merge all .pk3 files into one-two .obb files and use ETC1/KTX for textures instead of JPEG. And game/client modules are in the .apk, not .pk3.

Triang3l commented 10 years ago

By the way, are md3 models used on any popular custom maps? I want to get rid of software animation entirely, it's too slow on mobiles. Also no more than 45 bones per model (the desktop version allows 100 bones before it falls back to software anim; I can't use 100 because they would take 200 uniforms, but ES2 has a minimum of 128; 45 is the largest bone count in the game, used by BigVic).

viciious commented 10 years ago

Warsow ain't got any animated md3 models but pretty much all items, weapons, etc are md3. You shouldn't hit the animation path, so why removing it?

Can we settle on 50 bones limit for hw skinning? :P

Triang3l commented 10 years ago

28 uniforms is MUCH more constraining than 38. Maybe this seems insane for desktop guys, but I compress normals and colors in vec2s to make everything fit in 128V/16F uniforms, 8 attributes and 8 varyings! And only BigVic has such a large number of bones. The new Padpork, for instance, only has 34.

viciious commented 10 years ago

Hmm, ye, agreed

2014-04-11 21:01 GMT+04:00 SiPlus notifications@github.com:

28 uniforms is MUCH more constraining than 38.

— Reply to this email directly or view it on GitHubhttps://github.com/viciious/qfusion/issues/3#issuecomment-40225923 .

Best regards, Victor Luchitz

Triang3l commented 10 years ago

I really like how the Source engine does skinning. The model compiler splits draw calls by bone counts: at most 16 bones per draw call in Shader Model 1 and at most 53 bones per draw in SM2+, and it uses 4x3 matrices instead of dual quaternions with only 2 weights per bone, so only 3 or 6 dot products are needed for all world-space transformations.

viciious commented 10 years ago

Multiplying vector by a dual quaternion is pretty fast too. Matrices do have their own drawbacks.

2014-04-11 21:22 GMT+04:00 SiPlus notifications@github.com:

I really like how the Source engine does skinning. It splits draw calls by bone counts: at most 16 bones per draw call in Shader Model 1 and at most 53 bones per draw in SM2+, and it uses 4x3 matrices instead of dual quaternions with only 2 weights per bones, so only 3 or 6 dot products are needed for all world-space transformations.

— Reply to this email directly or view it on GitHubhttps://github.com/viciious/qfusion/issues/3#issuecomment-40227872 .

Best regards, Victor Luchitz

Triang3l commented 10 years ago

Some pics: https://pbs.twimg.com/media/BnWRGMQIAAARHjT.jpg:orig https://pbs.twimg.com/media/BnWce5rIEAAYm2K.jpg:orig

viciious commented 8 years ago

:trollface:

poVoq commented 8 years ago

Cardboard VR support would be awesome too :p