Java-Gaming.org Java4K winners: [ by our judges | by the community ]         
Featured games (67)
games approved by the League of Dukes
Games in Showcase (∞)
games submitted by our members



News: Read the Java Gaming Resources, or peek at the official Java tutorials
 
    Home     Help   Search   Login   Register   
Pages: [1]
  Print  
  [SOLVED] Set a Render Target for my Shader  (Read 454 times)
0 Members and 1 Guest are viewing this topic.
Offline Xoric

JGO n00b
*

Posts: 2



« on: 2011-09-14 08:50:02 »

Hello,

I'm pretty sure there are some tutorials but unfortunately I don't know what to search for exactly.
It would be nice if somebody could give me a link or a search keyword how to find more information.

Thanks in advance!

My Question:

I am drawing some stuff using a little shader. To keep it simple I will use a default shader here:

shader.vert (Vertex Shader):

1  
2  
3  
4  
5  
void main()
{
   gl_TexCoord[0] = gl_MultiTexCoord0;
   gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;
}


shader.frag (Fragment Shader):

1  
2  
3  
4  
5  
6  
uniform sampler2D tex;

void main()
{
   gl_FragColor = texture2D(tex, gl_TexCoord[0].st);
}


I want to get this shader to draw its output on a temporary texture rather than on the default frame buffer. I want to do this because some of my game objects consist of 30+ little textures that almost never change. I would like to save the resulting image for such a game object in a separate texture instead of drawing all 30+ textures directly on the frame buffer each time.

Do I need to pass another sampler2D to my shader and tell it to use it as output texture?
Or what would I need to do here?

Thanks for any help!
Xoric
Offline lhkbob

JGO Neuromancer
****

Posts: 1174
Medals: 35



« Reply #1 on: 2011-09-14 11:47:59 »

You need to use framebuffer objects so that you can render directly into another texture.  This seems like a pretty good tutorial that gives a lot of information: http://www.songho.ca/opengl/gl_fbo.html

Offline Xoric

JGO n00b
*

Posts: 2



« Reply #2 on: 2011-09-14 19:44:33 »

Hello lhkbob,

that was exactly what I was looking for! Especially the example at the end of the tutorial really helped me. After reworking the code in order to use it in Java I got it working pretty fast. Some problems remain but I will now be able to find the answers myself.

Thanks a lot for your kind help!

Greetings, Xoric
Pages: [1]
  Print  
 
 
Jump to:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.16 | SMF © 2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Page created in 0.083 seconds with 21 queries.