G.I.S Developer, 개발자 김형준(Dip2K)  
Front Page
Notice | Keyword | Tag | E-Mail | Guestbook | Admin | Write Article   
 
2007/08/14 23:38 2007/08/14 23:38
OpenGL Shader - 6
OpenGL Setup for GLSL- Shader 생성하기
원문 : http://www.lighthouse3d.com/opengl/glsl/index.php?oglshader

다음 그림은 쉐이더를 생성하는데 필요한 단계를 보이고 있다.
첫번째 단계(glCreateShader)는 쉐이더 컨테이너로써 수행하는 오브젝트를 생성하는 것이다. 이 함수는 컨테이너의 헨들을 반환한다.

이 함수에 대한 OpenGL 2.0 문법은 다음과 같다:

GLuint glCreateShader(GLenum shaderType);
Parameter:
  shaderType - GL_VERTEX_SHADER  또는  GL_FRAGMENT_SHADER

ARB 확장문법은 다음과 같다.

GLhandleARB glCreateShaderObjectARB(GLenum shaderType);
Parameter:
  shaderType - GL_VERTEX_ARB 또는 GL_FRAGMENT_SHADER_ARB

프로그램에 추가하고자 하는 만큼의 쉐이더를 생성할 수 있지만, remember that there can only be a main function for the set of vertex shaders and one main function for the set of fragment shaders in each single program.

다음 단계(glShaderSource)는 특정한 소스 코드를 추가하는 것이다. 소스 코드는 문자 배열이다.

이 함수에 대한 OpenGL 2.0에 대한 형태는 다음과 같다.

void glShaderSource(GLuint shader, int numOfString. const char** strings, int *lenOfStrings);
Parameters:
  shader - 쉐이더의 핸들
  numOfStrings - 문자 배열의 구성 요소 수
  strings - 문자 배열
  lenOfStrings - 각 문자열의 길이를 가지는 배열 또는 NUL값(문자열들이 NULL로 끝남)

다음은 이 함수에 대한 ARB 확장이다.

void glShaderSourceARB(GLhandleARB shader, int numOfStrings, const char **strings, int *lenOfStrings);
Parameters:
  OpenGL 2.0 형태의 인자 설명과 동일함

최종적으로, 쉐이더는 반드시 컴파일 되어져야 한다. 세번째 단계(glCompileShader)가 쉐이더 코드를 컴파일해주며 OpenGL 2.0에서의 형태는 다음과 같다.

void glCompileShader(GLuint shader);
Parameters:
  shader - 쉐이더의 핸들

다음으로 ARB 확장에 대한 형태는 다음과 같다.

void glCompileShaderARB(GLhandleARB shader);
Parameters:
  shader - 쉐이더의 핸들
이 글이 도움이 되셨다면, 짧은 댓글이라도 달아주시길, 큰 힘이 됩니다. ^^*

Tag : ,
Track this back : http://www.gisdeveloper.co.kr/trackback/282
Commented by lordcool at 2007/08/16 10:54  r x
gl쉐이더라.. 함 쭉훑어봐야겠다. 잘볼께. ^^
역시 3D는 GL로 갈생각인가봐?
WPF말야.. 쉐이더프로그래밍 없어서 안습이야. ms개발자한테 메일 보냈었는데 자기들도 충분히 쉐이더프로그래밍에 대한 강점을 인지하고있는데 아직 지원에 대한 스케줄 잡힌건 없다고 하더라구. 쩝 이래저래 고민 좀 하고있어.
Commented by 김형준 at 2007/08/16 13:03  r x
9월에 고객의 밤 행사 준비 때문에 디쟌팀 바쁘다던데.. 그럼 당근 연구소는 엄청 바쁘겠구나? 또 정구 날밤까는거 아냐? 이제 서른이얌.. 건강 조심하구~ 준비 잘해서 성공적으로 행사 마무리 잘 했으면 좋겠다..

WPF 3D에서 쉐이더 지원.. 지원을 한다고 해도 Low Level 수준으로는 하지 않을 것같어.. 한다면 쉐이더 적용을 쉽게하도록 할테고.. 그러면 여러가지 응용적인 면이나 적용상에 제약이 따를테고.. WPF는 2D와 3D에 대한 GDI+에 대한 다음 기술이고, 3D 전문은 XNA이깐.. 아마도 진짜 3D를 하려면 XNA를 해야겠지.
Commented by 비밀방문자 at 2007/08/16 16:24  r x
관리자만 볼 수 있는 댓글입니다.

[로그인][오픈아이디란?]
name    password    homepage
 hidden
BLOG main image
 Notice
[DuraMap-Xr] 소개 및 다운로드
[DuraMap-Xr] FAQ
개발과 관련한 질문은..
OpenGL Tutorials
운영자(Dip2K)에 대해
 Category
전체 (387)
GIS 개발 (82)
프로그래밍 (180)
스치는 생각들 (116)
번역 또는 집필 (3)
 TAGS
GIS OpenGL Shader Xr Algorithm Map Engine WPF ArcObjects ArcGIS C++
 Calendar
«   2010/07   »
        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 30 31
 Recent Entries
XrGeocoder - 주소를 좌표... (1)
XrProjection, 좌표계 변... (19)
[Java] 파생 클래스가 아...
[Java] 정적 초기화 블럭(...
[DuraMap-Xr] 그리드 레이...
 Recent Comments
감사합니다!!! 이렇게 직...
김지훈 - 07/29
감사 감사~ 근데.. 이글은...
김형준 - 07/29
친절한 해석 감사드려요^^
안토니오 - 07/29
별말씀을요.. ^^ 댓글에...
김형준 - 07/28
최근에 XrGeocoder라는 툴...
김형준 - 07/28
네, 요즘은 바로 도움을...
김형준 - 07/28
이래 저러 경황이 없어 댓...
김형준 - 07/28
잘 봤습니다. 큰 도움이...
gekko - 07/27
혹시 주소를 좌표로 변환...
김지훈 - 07/25
감사드립니다.. 바빠서 몇...
임은섭 - 07/23
 Archive
2010/07
2010/06
2010/05
2010/04
2010/03
2010/02
2010/01
2009/12
2009/11
2009/10
2009/09
2009/08
 Link Site
Adobe Flex 3 Help
Cartograph 2.0
GIS 위키디피아
GIS 프로그래밍 연구소
MapTools.org
OGC
OGRE3D
OSGeo 한국 지부
Wikipedia
국가수자원관리 정보시스템
국립지리원
국토연구원
국토해양부
네이버 과학
대한측량협회
류광님의 블로그
비지니스 GIS
이민파님의 공간분석과 리...
 Visitor Statistics
Total : 659265
Today : 81
Yesterday : 451
태터툴즈 배너
rss