본문 바로가기
728x90
반응형
[opengl].[#2.GLSL] 08. 잔소리...Toon shading 이전 시간에 Vertex Shader에 외부에서 조정되는 값을 넣어, Animation 효과를 내어 보았습니다. https://learn-and-give.tistory.com/34 [opengl].[#2.GLSL] 07. Vertex Shader에서 간단한 애니메이션 구현 앞에서 Vertex Shader에서 수식을 이용하여 Vertex 좌표를 변경 할 수 있는 것을 보았고, 이것이 Vertex의 좌표를 변경 할 뿐, Vertex로 구성 된 메쉬의 Topology와는 관계가 없다는 사실, 그리고 Pixel 수준에 learn-and-give.tistory.com 이번에는 조명에 들어가기 전에, (Code 없이) 잔소리만 좀 하려고 합니다. Toon shading 조명 효과의 대표적인 예인 Toon shadi.. 2023. 1. 11.
[opengl].[#2.GLSL] 07. Vertex Shader에서 간단한 애니메이션 구현 앞에서 Vertex Shader에서 수식을 이용하여 Vertex 좌표를 변경 할 수 있는 것을 보았고, 이것이 Vertex의 좌표를 변경 할 뿐, Vertex로 구성 된 메쉬의 Topology와는 관계가 없다는 사실, 그리고 Pixel 수준에서 변형이 되는 것이 아니라는 것을 보았습니다. https://learn-and-give.tistory.com/31 [opengl].[#2.GLSL] 06. gl_Position 끄적거리기(2) 지난 시간에는 Shader 밖에서 설정 된 Vertex 좌표가 gl_Position에 전달되는지 확인 해 봤습니다. 코드 상에서는 glRotate를 했지만 이것은 Model View Matrix에 영향을 미쳤고, glVertex로 입력 된 좌표가 그대 learn-and-giv.. 2023. 1. 11.
[opengl].[#2.GLSL] 06. gl_Position 끄적거리기(2) 지난 시간에는 Shader 밖에서 설정 된 Vertex 좌표가 gl_Position에 전달되는지 확인 해 봤습니다. 코드 상에서는 glRotate를 했지만 이것은 Model View Matrix에 영향을 미쳤고, glVertex로 입력 된 좌표가 그대로 gl_Position으로 전달 된 것을 볼 수 있었습니다. https://learn-and-give.tistory.com/29 [opengl].[#2.GLSL] 05. gl_Position 끄적거리기 앞에서 gl_Color의 특성에 대해서 알아보았습니다. https://learn-and-give.tistory.com/28 [opengl].[#2.GLSL] 04. gl_Color 끄적거리기 지난 글에서 Shader가 interpolation을 통해서 여러가.. 2023. 1. 9.
[opengl].[#2.GLSL] 05. gl_Position 끄적거리기 앞에서 gl_Color의 특성에 대해서 알아보았습니다. https://learn-and-give.tistory.com/28 [opengl].[#2.GLSL] 04. gl_Color 끄적거리기 지난 글에서 Shader가 interpolation을 통해서 여러가지 벡터를 보간하고, 그것으로 멋진 효과를 만들어 낸다는, 지극히 주관적인 잔소리를 좀 했었어요. https://learn-and-give.tistory.com/27 [opengl].[#2.GLSL] 03. learn-and-give.tistory.com 이번에는 Color와 함께 가장 대표적인 Vertex의 속성인 position에 대해서 알아보겠습니다. 좌표 변환을 해야 하니, 알아보기 쉽게 좀 정리를 하겠습니다. 왼쪽 아래 Vertex부터 반시계.. 2023. 1. 8.
[opengl].[#2.GLSL] 04. gl_Color 끄적거리기 지난 글에서 Shader가 interpolation을 통해서 여러가지 벡터를 보간하고, 그것으로 멋진 효과를 만들어 낸다는, 지극히 주관적인 잔소리를 좀 했었어요. https://learn-and-give.tistory.com/27 [opengl].[#2.GLSL] 03. Shader, 이걸 누가 설명 해 줬더라면... 나이가 들면서 점점 잔소리가 많아지는 것을 딸과의 대화에서 체감하고 있습니다. 예전에는 몰랐던 것을 이제 알게 되어, 똑같은 실수를 하지 않았으면 하는 바램이 크기 때문이죠. GLSL에서도 learn-and-give.tistory.com 평가는 언제나 각자가 하는 것이니, 이를 위해 Shader에 대해서 설명을 해 보도록 할께요. 이전 글의 마지막에, 이러니 저러니 다 하더라도, Frag.. 2023. 1. 7.
[opengl].[#2.GLSL] 03. Shader, 이걸 누가 설명 해 줬더라면... 나이가 들면서 점점 잔소리가 많아지는 것을 딸과의 대화에서 체감하고 있습니다. 예전에는 몰랐던 것을 이제 알게 되어, 똑같은 실수를 하지 않았으면 하는 바램이 크기 때문이죠. GLSL에서도 몇 가지를 미리 이해 하고 공부를 했다면 참 좋았겠다 싶은 것이 몇 가지 있습니다. "초보"에게 도움이 될 것 같은 잔소리 중, 하나를 이야기 해 볼께요. 랜더링 파이프 라인 알고 있나요? 누군가 예전에 저에게 물어봤다면, 아주 자신있게 잘 알고 있다고 답했을 것입니다. 지금은 그런 대답 섣불리 못하게 되었죠. 예전에 자료를 정리하면서 어디선가 퍼왔던 그림인데, 랜더링 파이프라인을 순서대로 보여줍니다. Graphics 관련 된 공부를 좀 해보신 분들은 아마도 한두번 본 적은 있을 것입니다. 잠시 주제를 바꿔서, Pol.. 2023. 1. 5.
[아빠의 Roblox 숙제]#2. 물체를 밀어서 이동시키기(1) 첫째 아이가 구상한 맵은 물을 건너가야 하는데, 헤엄을 못쳐서 뭔가 밟고 건너가는 시나리오로 만들어보자고 하였습니다. 물 넣는 것은 아직 모르니 일단 땅 위에서 만들어보려고 했어요. 건너가야 할 거리가 멀어서 중간에 발판을 이동시켜서 건너가도록 코스를 만들려고 했어요. 그런데, 그냥 플레이어로 밀면 될 줄 알았는데 잘 안되더라구요. 테스트 해 보니, 육면체는 잘 밀리지 않는데, 구는 쌩~ 굴러가고. 구는 재질에 따라 무게가 달라지는지 굴러가는 속도가 달라졌어요. 이것 저것 테스트를 많이 해 본 결과, 마찰력 속성을 설정해주면 되더라구요. 속성 중, 물리 속성을 설정 할 수 있는 속성을 이용합니다. 그런데, 이렇게만 하면, 바닥의 마찰력 때문인지 밀리지가 않더라구요. Terrain의 마찰력도 다 0으로 해.. 2021. 1. 30.
[아빠의 Roblox 숙제]#1. 와리가리 물체를 이용해서 건너가기 둘째 아이가 만들고 싶어한 맵이 '길건너 친구들'처럼 이동하는 물체를 딛고 건너가는 형식의 점프맵이었습니다. 이동하는 물체는 스크립트로 위치를 조정해주면 쉽게 되는데, 그 위에 탈 수 있게 하는 것은 조금 더 복잡하더라구요. CFrame이 핵심이었던 것 같기도 하고~~~ 길 건너 친구들처럼 공중에서 떨어지지 않고 건너가는 맵을 만들 때 사용 할 수 있는 모듈을 만들어 봤어요. 여러가지 방식이 있는 것 같은데, 참고 한 방식은 두 개의 파트 사이에서 충돌하면 방향을 변경 해 주는 방식입니다. 두 개의 파트가 있어야 한다는 제약이 있지만, 달리 말하면 두 개의 파트 위치를 조정하면 직관적으로 수정이 용이하죠. 코드는 아래와 같습니다. 아직 초보라서 좀 이해 안되는 부분이 있긴한데, 언제고 이해 될 날이 오겠.. 2021. 1. 29.
[opengl].[#2.GLSL] 02. Shader 사용 기반 코드 작성 Shader를 사용하기 위한 준비를 해 보겠습니다. 참고가 될 만한 Reference를 잠시 찾아봤는데, 옛 생각이 나서 예전에 많이 보던 사이트에 한번 가봤습니다. NeHe gamedev https://nehe.gamedev.net/ NeHe Productions - Everything OpenGL by gregsidelnikov, posted at May 7, 2017, 6:02 p.m. Actually, this post is not about how I made MK7 in OpenGL, but what the results were. I am currently porting it to WebGL as well. The level design geometry is so simple, that it.. 2020. 8. 9.
[opengl].[#2.GLSL] 01. OpenGL 1.1 기반의 랜더링 최신의 OpenGL과 Shader를 사용하기 위해 glew 연동까지 준비가 되었습니다. 1. 기본 랜더링 코드 이후에 진행 될 GLSL 기반의 랜더링과 비교를 용이하게 하기 위해, 1.1 기반의 랜더링에 조금 신경을 써보겠습니다. 삼각형 대신 glut에서 제공되는 주전자 그리기 기능으로 주전자를 그리고, 배경색이나 Depth 버퍼 초기화도 추가했습니다. void display() { //Clear glClearColor(0.0f, 0.0f, 0.0f, 1.0f); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); //Draw glColor3f(0.0f, 0.0f, 1.0f); glutSolidTeapot(0.5); glFinish(); } 2. 조명 효과 조명 효과.. 2020. 8. 9.
[opengl].[#1.Setup] Windows/VS2019/glut 기반의 셋업(3) - glew로 shader 사용 환경 구축 오랜만에 opengl을 다시 펼쳐보는 이유는, 모바일이나 웹에서 opengl을 다시 살펴 볼 일이 생겨서인데, 또 그러자니 PC기반에서 해 왔던 부분이 현재도 유효할까 궁금하고, 혹시 획기적으로 더 편리해진 부분은 없을까 궁금했습니다. 그런데, 새로운 변화보다 더 값진 것을 얻게 되는 것 같네요. 이전에 잘 모르고 했던 일들의 의미에 대해서 알게 되고, 심리적 부담이 되던 작업들을 이해하게 되면서 모르던 것이 조금 더 줄었다는 기쁨?? ^^ opengl에 대해서 세세하게 모든 것을 다시 다루는 것은, 경험 상 너무 힘든 일이고, 더구나 요즘 그런 코드를 직접 작성 할 경우도 많지 않아서 그 만한 가치도 없을 것 같습니다. 그래서, opengl에 대한 여러가지 내용은 생략하고, 웹이나 모바일에서 동일하게 .. 2020. 8. 8.
[opengl].[#1.Setup] Windows/VS2019/glut 기반의 셋업(2) - glut(freeglut)로 opengl 창 띄우기 예전에 짜두었던 코드를 지금 다시 VS2019에서 빌드 해 보려니 거의 대부분 실행이 안되네요. 그래서, glut 기반으로 다시 만들어봐야겠다 싶어 glut 받으러 가 봤더니... https://www.opengl.org/resources/libraries/glut/ GLUT - The OpenGL Utility Toolkit GLUT - The OpenGL Utility Toolkit We direct you to use FreeGLUT found on SourceForge: http://freeglut.sourceforge.net/. The original GLUT has been unsupported for 20 years. www.opengl.org 세월이 많이 흘렀음을 보여주는 문구가 있네요. .. 2020. 8. 8.
728x90
반응형