목록Graphics (14)
momodudu.zip
저번 포스팅에서는 전반적으로 기본 shader로 fragCoord값이 어떻게 이루어지는지에 대해서 보았다. 이번 포스팅에서는 간단한 원을 그려보고자 한다. 일단 아래와 같은 코드를 준비했다. void mainImage( out vec4 fragColor, in vec2 fragCoord ) { // Normalized pixel coordinates (from 0 to 1) vec2 uv = fragCoord/iResolution.xy; vec3 d = vec3(length(uv)); // Output to screen fragColor = vec4(d,1.0); } fragColor의 RGB채널에 d값을 넣어주었다. d는 uv coord의 distance로 정의되는데, 이는 곧 원점으로부터의 거리라고 ..
쉐이더 공부를 어떻게 하면 좀 더 직관적으로 할 수 있을까.. 라는 생각을 하던차에 아래와 같이 아주 유용한 사이트를 찾았다. https://www.shadertoy.com/ Shadertoy BETA www.shadertoy.com WebGL 기반으로 Shader를 직접 한줄한줄 수정하면 바로 옆에서 결과가 뜨는 사이트이다. C++개발자가 자기 필요에 의해서 web을 배우고 만든 사이트라는데... 대단하다. 여담이지만 진짜 존경한다... 나는 web필요성을 절실히 느끼고 있음에도 게으르게 살고있는데ㅠ 반성해본다.. 기본 프로젝트 생성시 뜨는 예제다. 나처럼 다양하고 복잡한 fragement shader를 만질일이 없었던 뵹아리 그래픽스 개발자에겐 아주 좋은 사이트인듯하다. 먼저, 처음 만들었을때 기본으..
이제 glm을 이용해서 어디서 많이 듣던 MVP가 뭔지 알아보자. 이 세가지를 이해하기에는 2D는 부족하다. 그래서 이번에는 정육면체를 들고왔다. 1.Model Model은 앞서 포스팅한것들에 대한것이라고 보면 되겠다. 즉, Translate, Rotate, Scale에 대한 매트릭스이다. 물체 자체에 대한 Matrix로 보면 된다. 모든 vertex가 원점을 중심으로 매칭된 공간에서, 모든 vertex들이 world좌표계의 중심으로 정의된 공간. 2. View View는 카메라에 대한 매트릭스로 보면 된다. 물체를 어디서 볼것인지? 어디로 볼것인지? 간단한 View matrix는 아래와 같다. glm::mat4 View = glm::lookAt(glm::vec3(4.0f, 3.0f, 1.0f), glm..
음.. 매트릭스 관련해서 공부를 하고 있는데, glm 관련 예제가 별로 없어서 기록 겸 포스팅. 쓰기 어려운 라이브러리는 아닌데, 그냥 공부겸 기록겸.... 일단 개발 환경은 모두 세팅된 상태여야함. 나는 glfw/opengl/c++입니당. 일단 2D상태의 아래와 같은 사각형이 있다. const char* vertexShaderSource = { "#version 330 core\n" "#define IN_VERTEX0\n" "#define IN_COLOR1\n" "#define IN_TEXTURE 2\n" "layout (location=IN_VERTEX) in highp vec3 position;\n" "layout (location=IN_COLOR) in lowp vec3 colors;\n" "la..