목록분류 전체보기 (56)
momodudu.zip
간단한 예제를 다뤄보던중에, 아래와 같은 유튜브 채널을 발견했다. https://www.youtube.com/watch?v=GgGBR4z8C9o ShaderToy Tutorial에 대해 처음부터 차근차근 잘 설명해주고 있다. 원을 그리고 나서는 뭘해야될까..라고 생각중이었는데, 기초부터 따라가기에 아주 좋은것 같아서 이 강좌를 따라서 step by step으로 포스팅 해보려고 한다. float circle(vec2 uv, float r, float edgeWidth) { return smoothstep(r,r-edgeWidth,length(uv)); } void mainImage( out vec4 fragColor, in vec2 fragCoord ) { // Normalized pixel coordin..
저번 포스팅에서는 전반적으로 기본 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..