본문 바로가기

그래픽스35

[Graphics] 컴퓨터 그래픽스 공부과정, 그리고 알게 된 것 나는 2019년 3월부터 컴퓨터 그래픽스에 관심을 가지고 공부하기 시작했다. 2년이 넘는 시간동안 (지속적이진 않았지만) 그래픽스를 나름대로 공부한 과정과 그 과정에서 알게 된 것들을 정리해보는 시간을 가지려고 한다. 그래픽스 전공 교수님들과 상담 MAYA에서 pymel, cmds로 간단한 스크립트 모델링 컴퓨터 그래픽스에 대한 리서치 :: 기본 웹서치, 포프, 채용공고 등 쉐이더 GLSL 공부 :: 생활코딩 이을, thebookofshaders OpenGL 공부 :: Computer Graphics Programming in OpenGL 대학교 컴퓨터 공학 수업 :: 프로그래밍언어론, 그래픽프로그래밍설계, 컴퓨터그래픽스, 머신러닝 머신러닝 :: 비주얼라이제이션 연구실 학부연구생 컴퓨터 그래픽스에 관심을.. 2022. 8. 29.
[Metal] 3D Models * 교재 제목 : Metal by Tutorials second edition (Beginning Game Engine Development with Metal) Questions 1. "Quads work well with subdivision or smoothing algorithms." :: quad mesh를 사용하면 bilinear interpolation이 가능해서 더 부드러운 곡면 표현이 가능 + retopology, remeshing 2. (*.mtl) "newmtl material_1 : This is the group that contains all of the cone's vertices." vertices? :: 각 그룹에 해당하는 material을 여러 개의 정점에 적용시킬 수 있.. 2022. 8. 7.
[Metal] Hello, Metal! * 교재 제목 : Metal by Tutorials second edition (Beginning Game Engine Development with Metal) Questions 1. Metal에서는 vertex shader, fragment shader 대신 vertex function, fragment function이라는 용어를 사용한다. *.metal 쉐이더 파일에 vertex shader에 해당하는 vertex function, fragment shader에 사용하는 fragment function을 한 번에 저장하고 사용하는 게 일반적이어서 그런가? (이를테면 이런 식이다) #include using namespace metal; struct VertexIn { float4 position .. 2022. 7. 20.
[그래픽스] 그래픽 프로그래밍 설계 기말고사 1. Barycentric coordinates 설명하시오. 1) 정의 : 삼각형과 상대적으로 계산된 좌표를 말한다. 예를들어, 삼각형 ABC가 있다면, 세 정점 A, B, C를 각각 (1, 0, 0), (0, 1, 0), (0, 0, 1)의 좌표를 갖도록 축을 설정하여 상대적으로 좌표 공간을 생성하고, 삼각형 안 또는 밖에 있는 정점들의 위치값을 계산할 수 있는 좌표이다. 2) 특징 : 정점이 삼각형 내부에 있을 때만 모두 양수로 계산된다. 삼각형의 각도에 의존하 지 않는 성질이 있다. 3) 활용 : 삼각형에 대한 위치 결정에 사용된다. 내부의 점 또는 외부의 점을 설명하는 데에 해당 좌표를 활용할 수 있다. 또한, 삼각형을 interpolation 할 때 사용된다. 2. 변환은 모델링과 애니메이션에 .. 2022. 2. 9.
[그래픽스] 2D 애니메이션 (니모를 찾는 니모 아빠와 도리) #include "cg.h" #include "draw.h" int w = 1000; int h = 1000; float t = 0.0; void display() { glClear(GL_COLOR_BUFFER_BIT); glClearColor(0.2, 0.2, 1.0, 1.0); // center glColor3f(0.2, 0.2, 1.0); rect(vector2D(-0.1, 0.1), vector2D(0.1, -0.1)); // Nemo's body glPushMatrix(); glRotatef(20.0 * t, 0.0, 0.0, 1.0); glTranslatef(0.0, 0.5 + 0.05 * sin(4 * t), 0.0); glColor3f(1.0, 0.6, 0.0); ellipse(vector.. 2022. 2. 9.
[그래픽스] 나만의 드로잉 2022. 2. 9.
[그래픽스] 나만의 필터 만들기 레트로 감성, 노이즈 필터를 만들어보았습니다. 먼저, 필터의 컨셉입니다. 최근 레트로, 복고 등의 열풍이 불면서 인기를 얻은 추억의 물건 중 하나는 바로 필름카메라인데요. 필름카메라의 색감과 빛을 담는 방식이 인기를 얻자, 사람들은 스마트폰과 컴퓨터를 이용해 '마치 필카로 찍은듯한' 보정을 하기 시작했습니다. 각종 필터 어플에서도 레트로 테마가 유행입니다. 레트로 테마 필터의 특징 중 가장 두드러지고, 또 제가 개인적으로 좋아하는 부분은 바로 노이즈, 잡음입니다. 지금 보여드리는 두 사진은 팬들이 레트로 감성으로 보정한 연예인들의 사진입니다. 사진을 자세히 보시면 먼지와 같은 필터가 껴있음을 알 수 있습니다. 이 노이즈는 옛날 카메라의 화질저하 현상을 인위적으로 구현했다고 생각하시면 됩니다. 이번 수업을.. 2022. 2. 8.
[GLSL] Fractal Brownian Motion https://thebookofshaders.com/13/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com float amplitude = 1.; float frequency = 1.; y = sin(x * frequency); float t = 0.01*(-u_time*130.0); y += sin(x*frequency*2.1 + t)*4.5; y += sin(x*frequency*1.72 + t*1.121)*4.0; y += sin(x*frequency*2.221 + t*0.437)*5.0; y += sin(x*freq.. 2022. 1. 6.
[GLSL] Voronoi https://thebookofshaders.com/12/ The Book of Shaders Gentle step-by-step guide through the abstract and complex universe of Fragment Shaders. thebookofshaders.com #ifdef GL_ES precision mediump float; #endif uniform vec2 u_resolution; uniform vec2 u_mouse; void main(){ vec2 coord = gl_FragCoord.xy/u_resolution; coord.x *= u_resolution.x/u_resolution.y; vec2 mouse = u_mouse.xy/u_resolution; mouse.. 2022. 1. 6.