Now that the OpenGL ES 2 wrapper has been released, I'm wondering if there's interest in learning how to use that. I've created a short survey to get an idea of what people want.
So, if you're interested in learning shader based graphics on AmigaOS, hop over to the survey and give your opinion: link
Hans
P.S., Feel free to share this elsewhere. The more responses the better.
Thanks Hans, filled in survey and thank you for the tutorials.
Nice work Caras do you have a blog showing any development info. Happy to contribute in some way to your project. (betatest/graphics)
As far as other tools that might help and something im looking into is developing Isometric game using voxel or something similar. (free pc/mac) https://voxel.codeplex.com/
Nice! What has your experience been working with OpenGL ES so far? Also, are there any missing driver features you wish we had (e.g., render-to-texture, certain shader instructions, etc.).
There were some issues with the shaders, but that might have been due to being written for OpenGL 3.x originally.
Did they compile and not work? Or, did they fail with errors?
Do you still have the original shaders? If so, then could you email them to me (use the email address on my website)?
Quote:
The fragment shader wouldn't work unless I put uniforms before in's. Didn't seem to matter with the vertex shader.
That's weird. I always put the uniforms after the inputs. Mind you, I'm using Nova directly so they're compiled with a standalone GLSL to SPIR-V compiler. Still, the compiler in the GL ES wrapper is based on the same code.
Quote:
Also RGB textures simply wouldn't work, had to convert everything to RGBA textures.
Well, RGB is supported by pretty much zero hardware... With MiniGL/Warp3D, using RGB actually wastes extra memory because it has to keep a copy of both the RGB original, and the converted RGBA version.
Quote:
The feature I'd most like is array textures.
That's unlikely to come any time soon, sorry. There's still lots of higher priority features.
@all This would be a good time to remind everyone to submit Warp3D Nova bug reports to: http://amigadeveloper.com/bugreports/ If something isn't working as it should, then I need to know. Posting on forums or sending via email is a good way for bug reports to get lost, so please use the bug tracker.
And some other stuff like gl_FragColor.rgb * 1.0; didn't work. But that was easy enough to modify. I'll try and get the original shaders to you, but half of it was probably my fault.
Quote:
That's weird. I always put the uniforms after the inputs. Mind you, I'm using Nova directly so they're compiled with a standalone GLSL to SPIR-V compiler. Still, the compiler in the GL ES wrapper is based on the same code.
Found that out from the boingball example code otherwise I'd still be banging my head against the wall.
Quote:
Well, RGB is supported by pretty much zero hardware... With MiniGL/Warp3D, using RGB actually wastes extra memory because it has to keep a copy of both the RGB original, and the converted RGBA version.
Didn't know that, I was only including the alpha channel when I was using it.
And some other stuff like gl_FragColor.rgb * 1.0; didn't work. But that was easy enough to modify. I'll try and get the original shaders to you, but half of it was probably my fault.
Older versions of the W3DN_SI driver couldn't handle readback of output variables. The latest version does (the one in the recent Enhancer Software Pack update). Thanks to HunoPPC for finding and reporting that one.
Yeah but I thought I could try porting some stuff despite the fact I wouldn't personally be able to run it. I'll probably get a better video card eventually :)
I'd want one that I could still run existing Warp3D games on my Sam-Flex.
I don't know enough about the different Warp3Ds, so perhaps I can't have it both ways and all existing games need to be re-ported? For example xmoto and Neverball. And would they need source changes? I assume if it worked with MiniGL, then you simply recompile. Would you need two binaries, one for older cards? (i.e 9250).
can i suggest to made the dev kit of nova as free distributable? this will increase for sure the developing of nova compatible software and a consequence will be more user registration .
Older versions of the W3DN_SI driver couldn't handle readback of output variables. The latest version does (the one in the recent Enhancer Software Pack update). Thanks to HunoPPC for finding and reporting that one.
Ok, I have the enhancer plus 1.1 and it crashes with gl_Position.y += yOffset; (shader compiles with no errors).
Edited by Caras on 2016/9/7 13:11:58 Edited by Caras on 2016/9/7 13:22:35
I don't know enough about the different Warp3Ds, so perhaps I can't have it both ways and all existing games need to be re-ported? For example xmoto and Neverball. And would they need source changes? I assume if it worked with MiniGL, then you simply recompile. Would you need two binaries, one for older cards? (i.e 9250).
No recompile needed, I have a Radeon HD7770 and it works quite happily with Warp3D and Warp3DNova, the big problem you'll have is fitting a PCIe card in a samflex as the adaptors can cost more than the gfx card. You will lose overlay (DVPlayer) but comp_yuv2 in mplayer is faster once you have RadeonHD.chip V2.x installed.
Amiga user since 1985 AOS4, A-EON, IBrowse & Alinea Betatester
Ok, I have the enhancer plus 1.1 and it crashes with gl_Position.y += yOffset; (shader compiles with no errors).
Okay, please submit a ticket to the bug tracker along with a test case (or at least a test shader), and I'll look into it.
@tlosm Quote:
can i suggest to made the dev kit of nova as free distributable? this will increase for sure the developing of nova compatible software and a consequence will be more user registration .
That's up to A-EON. That said, developing software without the ability to test is doesn't work, so I don't see the advantage. Sure, theoretically you could send test versions to others, but it's a horribly slow way to work.
@MickJT Quote:
I don't know enough about the different Warp3Ds, so perhaps I can't have it both ways and all existing games need to be re-ported? For example xmoto and Neverball. And would they need source changes? I assume if it worked with MiniGL, then you simply recompile. Would you need two binaries, one for older cards? (i.e 9250).
Any card supported by the W3DN_SI Warp3D Nova driver also works with the W3D_SI Warp3D driver, so you don't have to choose between one or the other.
@all Thanks to everyone who has responded so far. I'd like to get as many responses as possible. Could you help me out, and share the link on other places where AmigaOS developers (or aspiring developers) may see it? Thanks.
from a total 3D programming newbie point of view, what is the easier, Warp3D Nova or OpenGL ?
Hard to say. I personally find Warp3D Nova easier, but that could be because I designed it. Warp3D Nova has fewer ways to achieve the same task, which I think makes it simpler and easier.
That said, it takes a little more effort to get started. Warp3D Nova requires you to use Vertex Buffer Objects (VBOs) for vertex data. VBOs have to be allocated and then filled with data, which are extra steps compared to using vertex arrays directly. However, you really want to use VBOs in OpenGL as well for performance reasons (they can be stored in VRAM). So Nova forces you to learn the best method right away, instead of starting with an easy but slow method.
The high-level concepts are the same for both.
Quote:
Which of these 2 is the less verbose ?
Assuming that you're using VBOs for both, Nova is slightly less verbose. In OpenGL you have to call glUniform*() for each uniform variable (i.e., shader constant), whereas Warp3D Nova allows you to write/copy your data straight into the Data Buffer Object (DBO). That means fewer function calls.
IMHO, when it comes to choosing one or the other, it really comes down to whether you're writing for AmigaOS alone, or multiple platforms. OpenGL is cross-platform, whereas Warp3D Nova is AmigaOS only.