본문 바로가기

Computer125

8. GLSL -- Animation GLSL에 에니메이션을 적용시켜보도록 하겠다. 그러기 위해서는 GLSL에 있는 변수에 변화를 주어야 하고, 그 변수를 실제 적용 시켜야한다. fs는 그대로 두고, vs에만 변화를 주어보겠다. //VertexShader.vs uniform float time; void main(){ gl_FrontColor= gl_Color; vec4 v= vec4(gl_Vertex); v.y= cos( 5 * v.z + time*0.1); gl_Position= gl_ModelViewProjectionMatrix * v; } // time라는 변수를 uniform float 으로 선언하여, OpenGL App. 에서 읽어들일 수 있게 하였다. public void init(GLAutoD.. 2007. 8. 3.
7. GLSL -- vs & fs VertexShader(이하 vs 또는 VS) 와 FragmentShader(이하 fs 또는 FS)를 OpenGL Application 으로 읽어들이는 가장 간단한 방법에 대해 알아 보았다. // VertexShader.vs void main(){ gl_Position= ftransform(); } // FragmentShader.fs void main(){ gl_FragColor= vec4(1, 0, 0, 1); } 위의 vs 와 fs의 기능은 매우 간단하다. glVertex3f(...) 등으로 렌더링 파이프 라인에 넣어진 버텍스는 vs 에 따라 projection, view 를 거친후 red 색상으로 화면에 출력해 준다. 그렇다면 실제 응용프로그램에서 지정된 색상 즉, gl.glColor3f(1, 1.. 2007. 8. 3.
6. GLSL -- HelloWorld // Test.java import javax.media.opengl.*; import com.sun.opengl.util.*; import java.awt.*; import java.awt.event.*; public class Test extends Frame{ public Test(){ this.setSize(400, 300); this.setTitle("Test1"); GLCapabilities glCaps= new GLCapabilities(); glCaps.setRedBits(8); glCaps.setBlueBits(8); glCaps.setGreenBits(8); glCaps.setAlphaBits(8); GLCanvas canvas= new GLCanvas(gl.. 2007. 8. 3.
5. Text import javax.media.opengl.*; import javax.media.opengl.glu.*; import com.sun.opengl.util.*; import java.awt.*; import java.awt.event.*; import javax.swing.*; public class Test extends JFrame{ public Test(){ this.setSize(400, 300); this.setTitle("Test1"); GLCapabilities glCaps= new GLCapabilities(); glCaps.setRedBits(8); glCaps.setBlueBits(8); glCaps.setGreenBits(8); glCaps.setAlphaBit.. 2007. 7. 31.