김형준 GIS 연구소 (for Developers)  
Front Page
Notice | E-Mail | Admin | Write Article   
 
2007/08/10 02:56 2007/08/10 02:56
OpenGL Shader - 5
OpenGL Setup for GLSL - Overview
원문: http://www.lighthouse3d.com/opengl/glsl/index.php?ogloverview

GLSL을 위한 OpenGL 설정이라는 이 섹션은  두개의 버텍스 쉐이더와 프레그먼트 쉐이더에 대해 들어봤다고 가정을 하고 진행되며 OpenGL 어플리케이션에서 이 쉐이더들을 사용기 위한 내용이다. 만약 아직까지 직접 쉐이더를 작성해보지 않았다면, 인터넷으로부터 쉐이더를 구할 많은 사이트가 있으니 참고하길 바란다. 참고 사이트는 http://www.3dshaders.com/home/가 있으며 쉐이더 개발을 위한 툴로는  Shader Designer와 RenderMonkey (원문에서는 링크가 깨져있으며 구글에서 검색해서 현재 사용가능한 사이트의 URL을 검색해보길 바란다)가 있고, 이 툴에는 매우 많은 쉐이더 예제가 있다.

OpenGL을 보면, 쉐이더 프로그램을 설정하는 것은 C 프로그램을 작성하는 흐름과 유사하다. 각 쉐이더는 C 모듈과 유사하며 이 모듈은 C언어에서 처럼 개별적으로 컴파일되어져야하고, 또 정확히 C에서처럼 프로그램에 링크되여야 한다.

ARB 확장들과 OpenGL이 이 섹션에서 사용된다. 만약에 OpenGL의 버전이 1.1 이상을 사용해 보지 않았거나 확장이 처음이라면, GLEW를 보길바란다. GLEW는 확장기능과 OpenGL 최신 함수 사용를 바로 사용할 수 있도록 해준다.

만약에 아직 OpenGL 2.0을 지원하지 않는다면, 확장을 이용해야 하는데, 필요한 확장은 아래와 같다.

  • GL_ARB_fragment_shader
  • GL_ARG vertex_shader
아래는 GLEW를 사용하는 GLUT 프로그램의 간단한 예제인데, 위의 두개의 확장을 사용할 수 있는지 검토하는 코드이다.

#include <GL/glew.h>
#include <GL/glut.h>
	
void main(int argc, char **argv) {
    glutInit(&argc, argv);
		
    ...
	
    glewInit();
    if (GLEW_ARB_vertex_shader && GLEW_ARB_fragment_shader)
        printf("Ready for GLSL\n");
    else {
        printf("Not totally ready :( \n");
        exit(1);
    }
	
    setShaders();
	
    glutMainLoop();
}
OpenGL 2.0이 가능한지 검사하기 위해서 아래와 같은 코드를 사용한다.

#include <GL/glew.h>
#include <GL/glut.h>

void main(int argc, char **argv) {

    glutInit(&argc, argv);
		
    ...
	
    glewInit();
    if (glewIsSupported("GL_VERSION_2_0"))
        printf("Ready for OpenGL 2.0\n");
    else {
        printf("OpenGL 2.0 not supported\n");
        exit(1);
    }

    setShaders();
	
    glutMainLoop();
}
아래의 그림은 OpenGL 2.0의 함수로써 나타낸 쉐이더를 생성하는 단계를 나타내고 인데, 언급한 함수의 세부내용은 나중에 자세히 살펴보도록 하겠다.

Tag : ,
Track this back : http://www.gisdeveloper.co.kr/trackback/281

name    password    homepage
 hidden
BLOG main image
 Notice
DuraMap-Xr 소개 및 다운로드
[오픈소스] SimpleSHP v0.1
FingerEyes-Xr 소개 및 다운로드
OpenGL Tutorials
 Category
전체 (531)
GIS 개발 (146)
프로그래밍 (233)
스치는 생각들 (129)
번역 또는 집필 (3)
 TAGS
GIS Xr OpenGL Shader FingerEyes BlackPoint Algorithm Java Map Engine WPF
 Calendar
«   2012/02   »
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29      
 Recent Entries
[FingerEyes] 지오메트리...
[FingerEyes] Geometry로...
[FingerEyes] FID 리스트...
[FingerEyes] UPDATE, INS...
영화, "부러진 화살"
 Recent Comments
소스코드 그대로 써보아도...
인현환 - 13:50
글의 예제 코드의 숫자들...
김형준 - 12:57
안녕하세요. 포스트 잘 보...
인현환 - 11:15
메일로 답변드렸습니다....
김형준 - 02/01
txt파일을 엑셀로 변환하...
최상준 - 02/01
코봉히님두 새해 복 많이...
김형준 - 01/25
아 너무 감사합니다. 새해...
코봉히 - 01/23
wkb는 http://www.gisdeve...
김형준(Dip2K) - 01/23
wkb의 구조가 shp파일의...
코봉히 - 01/20
wkb는 바이너리인지라.....
김형준(Dip2K) - 01/20
 Archive
2012/02
2012/01
2011/12
2011/11
2011/10
2011/09
2011/08
2011/07
2011/06
2011/05
2011/04
2011/03
 Link Site
Adobe Flex 3 Help
Cartograph 2.0
GADM
GIS 위키디피아
GIS 프로그래밍 연구소
MapTools.org
OGC
OGRE3D
OSGeo 한국 지부
Paul Bourke Site
Wikipedia
국가수자원관리 정보시스템
국립지리원
국토연구원
국토해양부
네이버 과학
대한측량협회
류광님의 블로그
이민파님의 공간분석과 리...
지오서비스(GeoService)
 Visitor Statistics
Total : 929874
Today : 525
Yesterday : 511
태터툴즈 배너
rss