본문 바로가기

분류 전체보기192

glut glut ( include, lib, system32 ) glext 2007. 8. 6.
10. GLSL -- Texture GLSL을 이용한 텍스쳐 예제이다. 늘 그랬던 것 처럼, 예제 소스 코드의 간결함을 위해 예외 처리 등의 구문은 추가하지 않았다. //VertexShader.vs void main(){ gl_TexCoord[0]= gl_MultiTexCoord0; gl_Position= ftransform(); } //FragmentShader.fs uniform sampler2D myTex; void main(){ gl_FragColor= texture2D(myTex, vec2(gl_TexCoord[0])); } //# Render.java의 멤버함수 - 텍스쳐를 읽어들인다. import java.io.*; import com.sun.opengl.util.texture.*; priva.. 2007. 8. 3.
9. GLSL -- 툰 셰이딩 Toon Shading ( 만화적 셰이딩)은 Cell Rendering 이라고도 하는 NPR( Non-Photorealistic Rendering, 비 실사 렌더링 ) 분야의 한 종류이다. Toon Shading 의 핵심은, 1. 급격한 음영 변화와 비교적 단순한 단계의 음영. (밝음, 중간, 어두움) 2. 외곽선. 의 두가지로 들 수 있다. 외곽선을 제외한 Toon Shading이다. // VertexShader.vs uniform vec3 lightDir; varying float intensity; void main(){ intensity= dot(lightDir, normalize(gl_Normal)); gl_Position= ftransform(); } // FragmentShader.fs va.. 2007. 8. 3.
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.