I am working on a C++ project. However, I got to a point which requires some OpenGL knowledge, and I would like to get some help from someone who has worked with OpenGL before.
I would like to mention ahead of time, that my hardware understands OpenGL ES, which is slightly different than OpenGL. However, I think for the sake of what I want to accomplish, it probably should be okay, since I am not planning on using OpenGL for graphical purposes.
I am developing my own DSP algorithm, and I have already taken it to the point, that I have decoded my jpeg image as RGBA, and stored it in an internal buffer already. What I need help with, is from this point on:
In fact, since with my algorithm, I have to do hefty Matrix multiplications, and image manipulations (e.g. Multiplying images with a constant value, or doing point-wise multiplication of data), I am planning on using OpenGL to do my image manipulations.
All I want is to be able to upload my image to a texture, and then use Shaders/Fragments to be able to multiply my images.
For example, I have a jpeg image of 230x240. I have read it as RGBA, and stored it internally in a buffer (unsigned char* data). Now, I want to multiply this image with another image of the same size.
So, instead of doing this in CPU, I want to upload each image as textures and then hand it over to Shaders, so it can do the multiplication in GPU.
It is not always going to be multiplication. Sometimes it may be addition, division, or subtraction. So, what I am looking for is some help so that I can get started using Shaders. So, I am looking for a general set up for passing my data to Shaders, and letting Shaders do the math, and then getting back the data.
Again, keep in mind that I am not interested in using OpenGL for any graphical purpose, and it is just for performing math.
I am also open to suggestions. All I want to do is to do it the fasted possible way, so if someone has another idea that my intended computations may be performed faster, I would be okay doing it your way too (as long as its advantage is well justified).
Thanks,
--Rudy
Honestly you don't want to use OpenGL for what you are trying to do. Locking a texture and reading back from it is going to be really slow on most hardware. If your hardware supports it, you should consider looking into OpenCL which is designed for exactly what you're trying to do. Regardless, I'm more than willing to help you get it working in GL or CL.