1. 교수 소개 및 연구 배경
- 교수 및 연구 소개:
- 강의 담당: 컴퓨터공학과 진효진 교수
- 연구 분야는 휴먼-AI 인터랙션으로, 챗봇, AI 스피커 등 인간과 인공지능의 상호작용에서 발생하는 다양한 이슈(예: 추천 알고리즘, 가짜 뉴스, AI 윤리 등)를 다룸.
- 산업계(삼성, 현대 등)와 학계 모두에서 경험을 갖춘 교수로, 연구실 위치 및 면담 신청 방법 등 학생과의 소통 채널을 적극 안내함.
2. 강의 개요 및 목표
- 강의 내용:
- 기초 이론 및 구현: 컴퓨터 그래픽스의 이론과 기본 구현 방법을 배우며, OpenGL을 활용한 실습이 포함됨.
- 랜더링 파이프라인: 3D로 만들어진 모델이 2D 화면에 출력되는 과정을 수학적 계산과 단계별 처리(버텍스 쉐이더, 레스터라이저, 프래그먼트 쉐이더, 아웃풋 머저)를 통해 학습하는 것이 핵심 목표.
- 필수 기초 수학: 선형대수, 벡터와 행렬 등 컴퓨터 그래픽스에 필수적인 수학 개념을 복습하고 확실히 다질 예정.
- 강의의 특징:
- 이론 중심의 평가(중간·기말 시험)와 팀별 코드를 활용한 실습 과제가 준비됨.
- 게임, VR 등 3D 실시간 그래픽스뿐 아니라 2D 이미지 처리 및 후처리 단계 등 다양한 분야의 원리를 포괄적으로 다룸.
3. 컴퓨터 그래픽스의 기본 원리
- 정의 및 범위:
- 컴퓨터 그래픽스는 시각적 콘텐츠를 디지털로 합성·조작하는 방법을 연구하는 컴퓨터 과학의 하위 분야로, 3D뿐 아니라 2D 그래픽과 이미지 처리도 포함됨.
- 이미지의 ‘아름다움’보다는 수학적, 계산적 기초를 중심으로 다룸.
- 모델링부터 후처리까지의 프로세스:
- 모델링: 3D 객체를 폴리곤 메시(주로 삼각형) 형태로 구성하는 단계.
- 리깅/애니메이션: 모델에 스켈레톤(뼈대)를 부여하여 자연스러운 움직임을 구현하는 과정.
- 랜더링: 모델의 텍스처, 라이팅, 그림자 등 시각적 요소를 계산해 2D 이미지로 출력하는 단계.
- 후처리(Post Processing): 블러, 효과 등을 추가하여 영상의 사실성과 완성도를 높이는 선택적 단계.
4. 랜더링 파이프라인의 이해
- GPU 파이프라인 단계:
- 버텍스 쉐이더: 3D 모델의 각 정점 데이터를 처리하여 변환 결과를 생성.
- 레스터라이저: 버텍스 데이터를 화면의 픽셀로 변환하는 과정.
- 프래그먼트 쉐이더: 각 픽셀의 색상 및 텍스처 정보를 계산하여 최종 이미지에 반영.
- 아웃풋 머저: 모든 처리 단계를 통합하여 최종 출력물을 완성하는 역할.
- 실제 적용:
- 이 과정은 GPU 내에서 물 흐르듯이 데이터가 순차적으로 처리되며, 그래픽스 구현의 핵심 아키텍처임.
- 강의에서는 이 파이프라인을 중심으로 각 단계의 원리와 역할, 그리고 실제 코드 구현 방법을 다룰 예정.
5. 수업 진행 계획 및 학습 전략
- 학습 순서:
- 초반: 강의 소개 및 컴퓨터 그래픽스의 기본 개념, 수학 기초(선형대수 등) 복습.
- 중반: 랜더링 파이프라인, 쉐이더 프로그래밍, 애니메이션 원리 등 주요 이론 심화.
- 후반: 후처리 및 실전 프로젝트를 통해 이론을 실제 구현으로 연결하는 실습 진행.
- 수업 및 평가 규정:
- 출석 및 수업 중 적극적 참여가 중요하며, 소음이나 부정행위 등 학습권 침해 행위에는 점수 감점 등 제재가 있음.
- 팀별 실습 과제와 발표를 통해 협업 및 설명 능력도 평가함.
- 참고 자료 및 추가 학습:
- 강의에 활용되는 주요 교재는 OpenGL 관련 참고서와 교수님이 준비한 강의록으로, 기본 개념을 탄탄하게 익힌 후 심화 자료를 추가적으로 학습할 것을 권장함.
수업 스크립트 :
수업 시작하겠습니다.
수고하셨습니다. 우선 지금 출석 체크부터 먼저 할게요.
저는 컴퓨터 그래디스 여러분들과 한 학기 동안 컴퓨터 그래픽스 강의를 하게 될 거고 그 컴퓨터 그래픽스 강의를 담당하게 될 포터 공학과 진효준 교수니다.
제 이름은 아까도 말씀드렸듯이 이런 진효진이라고 하고요.
2024년 작년 9월에 경상 국립 대학교를 부임했습니다.
제 연구 분야는 인간과 AI 이 상호작용을 이제 하이랭귀지 프로세싱 기반으로 이제 분석하는 연구를 진행하고 있고요.
특히 이제 AI 인간 상호작용 중에서도 챗봇이랑 AI 스피커 사람의 서로 대화할 수 있는 이 AI와 사람의 인터랙션에서 발생하는 여러 가지 장점이나 단점들에 포커싱 해가지고 수업을 진행을 하고 있고요.
제 이메일 주소는 지금 효진 신 gnu ac KR 이고 제 연구실은 지금 이 건물 5층에 508호에 위치하고 있습니다.
여러번이고 홈페이지 보면 다 공개가 되어 있고요.
그래서 혹시 수업 관련해서 면담을 하고 싶거나 아니면 진로 관리해서 면담을 하고 싶은 학생이 있으면은 미리 저한테 메일을 주셔서 저와 약속을 잡은 후에 이제 발상을 해 주시면 됩니다.
작년 한 학기 있어 보니까 제 방에 이제 무작정 이렇게 찾아오는 학생들도 있긴 있는데 제가 방에 있으면 상관이 없는데 또 출장을 가거나 아니면 회의가 있거나 하는 경우가 많아가지고 혹시 제가 자리 비웠을 때 학생들이 찾아오면 헛걸음 하기 쉬우니까 간단하게 그냥 이런 이런 이유로 전달하고 싶습니다 하고 메일을 보내시면 제가 면담을 해드릴 테니까 연구 관련해서나 아니면 과목 관련해서나 꼭 꿈미래를 저한테 신청하지 않았더라고 하더라도 공장이 필요하신 분은 연락해서 공유해 주시면 됩니다.
저에 대해서 그냥 간단히 조금 설명해 드리고 수업에 대해서 이제 진행하려고 하는데요.
저라는 사람이 어떤 사람인지 잘 모르실 테니까 일단 말씀드리면 저는 경상독립대 부임하기 전에 한 3년 정도 전국 생활 연구소인 학교과학연구원이라는 대전에 이제 위치하고 있는 연구소에서 데이터 사이언티스트로 한 4년 정도 근무를 했었고요.
그리고 박사 학위는 카이스트에서 박사 학위를 받았습니다.
그리고 다른 교수님들이랑 조금 차별화 포인트 그나마 어필할 만한 차별화 포인트는 제가 이제 연구만 쭉 한 게 아니고 삼성전자나 현대자동차 그룹에서 해외 마케터로 한 10년 정도 근무를 했었던 경력이 있어요.
그래서 연구계뿐만이 아니라 이제 학계 학계뿐만이 아니라 이제 산업계도 제가 조금 그나마 조금 더 경험이 있어서 그 부분에서 더 아는 부분이 있고요.
그리고 정부 출연 연구소에 근무를 할 때 카이스트 학부생이랑 또 대학원생들 연구 지도를 해가지고 같이 의문을 여러 차례 쓴 경험이 있어서 연구적인 측면에서도 여러 가지 멘토링을 할 수 있습니다.
아까도 제 연구 주제에 대해서 조금 말씀드렸는데 저는 휴먼 AI 인터렉션을 연구 주제로 삼은 이유가 제가 어느 논문을 대학원생 때 논문을 항상 읽었었는데 그 논문에서 지금 살고 있는 이 인류가 AI랑 함께 살아가게 될 첫 번째 인류다 이런 얘기가 저한테 너무 와닿아가지고 기존 세대는 사실 AI랑 인터랙션 할 일이 별로 없었죠.
근데 여러분들도 마찬가지고 저도 마찬가지고 지금 AI랑 너무 밀접하게 인터렉션 하고 있죠.
시립 같은 경우도 그렇고 그다음에 AI 스피커라든지 이런 것들이 다 AI 기구 셋 GPT도 사실 여러분들 그냥 소프트웨어처럼 쓰고 있지만 다 AI가 이렇게 그러니까 그 AI와 사랑과 이제 인터렉션 하면서 여러 가지 예상하지도 못했던 문제들이 발생할 수도 있어요.
사실 여러분들 소셜 미디어 같은 거 있는 사람들이랑 이렇게 네트워킹하는 여러 가지 장점도 있지만 그런 소 미디어 때문에 추천 알고리즘이죠.
정확하게 말하면 소셜 미디어 때문은 아니고 추천 알고리즘 때문에 지금 정치적으로 전 세계가 좌우로 너무 극단적으로 분리되는 이런 것들도 다 소셜미디어 역량이라고 지금 사회학자들은 보고 있거든요.
그리고 이거를 어떻게 막지 못하고 있고 그런 여러 가지 이제 믹스 인포메이션이라든지 가짜 뉴스 문제라든지 AI 윤리라든지 아니면 헤이스피츠라고 해서 특정 인종을 향해서 이제 사람들이 나쁜 말을 하는 이런 여러 가지 문제들이 있는데 그런 그런 문제들을 초점을 맞춰 가지고 그 어떤 이런 것들을 하지 않기 위해서 우리가 어떤 어프로치를 해야 되는지 그런 연구를 지금 저와 저희 연구실에서는 지금 하고 있습니다.
다시 이 수업을 이제 앞으로 어떻게 할지에 대해서 이제 다시 넘어가자면은 이 수업은 이제 컴퓨터 그래픽스 기초 및 기초 이론 및 구현 방법을 학습하는 데 초점을 맞출 예정입니다.
그래서 주로 집중하는 것은 이제 컴퓨터 그래픽스와 관련된 이론이 있고요.
프로그래밍 실습이 포함되어 있습니다.
그래서 어떤지를 기반으로 이제 프로그래밍 실습을 포함되고 있지만 결국에 그 프로그램 실습도 결국에는 우리 이론 내용을 이해하기 위한 실습이 될 겁니다.
그리고 중간 기말고사 역시 이제 이론 중심으로 테스트를 할 예정입니다.
특히 이제 그 여러 가지 내용 중에서 강의 계획서는 다 이제 올려놨을 텐데 강의 계획서 보시면 여러 가지 단계가 있지만 그 단계 중에서도 여러분들이 꼭 알아야 될 부분이 이제 랜더링 파이프라인이라는 부분이 있어요.
그 랜더링 파이프라인이라는 부분이 이제 사실 이 강의의 핵심이 될 거고요.
그리고 간단하게 설명을 하면은 여러분들이 이제 보고 있는 어떤 게임 영상 같은 것들이 저한테 3D 그래픽으로 되어 있는데 실제로 여러분들이 보고 있는 이 모니터 화면은 2d거든요.
3D가 아니라 그래서 우리가 이제 영상으로 하고 구현한 이 3D 이미지를 결국에 이제 어디언스 사람들이 보는 이 2D로 구현하기 위해서 여러 가지 단계의 어떤 스페이스 체인지가 일어나거든요.
그 중간 단계로 지금 말은 스페이스 체인지로 되게 멋지게 들리겠지만 결국에 우리가 하는 거는 수학적으로 계산을 해서 어떤 시점을 이 스페이스에서는 이 스페이스 시점으로 옮겨주고 이 점을 다시 다음 스페이스에 계산을 해가지고 이 스페이스를 옮겨주고 하는 어떤 수학적인 계산 과정이에요.
말은 멋있게 스페이스 체인드지만 어쨌든 그런 거를 어떻게 해야지 스페이스 체인지가 원활하게 이루어져서 이 3D로 구현한 이 그래픽스를 사람들한테 TV 화면으로 3D 느낌으로 보여주게 할 것인가 라는 거를 이제 이 그래피스 수업에서 여러분들이 배우게 될 거예요.
그 과정을 이제 어떻게 하는지 이 랜더링 파이프라인에서 배우게 될 거고요.
그래서 그 이론을 배움과 동시에 이제 OpenGL의 기반으로 이 컴퓨터 그래 팩스를 어떻게 구현을 하는지 이제 전반적으로 이제 기초 이론이에요.
어드레스는 훨씬 더 여러 가지 많은 걸 배울 수 있겠지만 우리는 이제 업계로 가기 전에 우리가 필수로 알아야 할 어떤 기본 이론을 수업에서 배우게 될 겁니다.
그래서 이제 이 강의를 듣기 위해서 여러분들 조금 더 원활하게 들으려면은 프로그래밍 기초가 있어야 될 거야.
수습들이나 프로그래밍 경험이 있으면 서 그리고 선형대 수학 행렬이라든지 아니면 백터 행렬 등등 이런 수학적인 요소들이 굉장히 많이 나와요.
아까도 얘기했듯이 이 스페이스 체인지라는 게 결국에는 이 선형대수에서 행렬을 곱셈 1년이나 벡터를 이제 어떻게 곱해가지고 이렇게 체인지를 하느냐 이 문제여가지고 수학적인 개념이 굉장히 많이 나올 거고 아마 여러분들이 듣는 전공 과목 중에서 가장 수학에 조금 더 가까운 과목이라고 생각하시면 될 거에요.
근데 이거에 너무 부담 가질 필요는 없고 당장 다음 주에 이제 이 이 그래픽스에 들어가는 기본 수학의 어떤 개념을 다시 한 번 커버를 해 줄 테니까 약간 내가 선형대수 들은 적이 없고 하나도 모르겠는데라고 생각하시면 다음 주 수업에서 이제 행렬의 개념, 벡터의 옵션 이런 거를 쭉 한번 다룰 테니까 그때 이제 본인이 수업을 들어보고 난 좀 공부를 좀 더 해야겠다 싶으면은 뭐 참고 자료 찾아봐도 좋고 어쨌든 다음 주 이제 Math Basic 수업을 할 건데 그때 한번 한번 보고 결정하시면 될 것 같아요.
어쨌든 그렇게 어려운 개념은 아니다. 그래서 여기 그래픽스에 들어가는 이제 쓰는 개념은 그렇게 어렵지는 않고 또 계속 쓰게 되는 것들이 몇 개 있거든요.
이녀 인터플레이션이라든지 아니면 횡령 생이라든지 테크 옵션이라든지 이런 것들이 있으니까 그런 것들을 다음 시간에 이제 랩 한번 쭉 보시고 공부를 하시는 거 같아요.
계속 얘기를 하고 있지만 저는 이 컴퓨터 그래픽을 구현하는 이제 이론에 대해서 조금 집중을 할 겁니다.
OpenGL의 프로그래밍 실력을 향상시키기 위한 강의는 아니다라는 걸 미리 말씀드리고요.
본인이 이 오픈지의 프로그래밍 실력 향상의 목적이 있을 경우에는 본인들이 이제 제가 또 관련한 이 책에 들어 있는 거의 OpenGL 이 책을 제시스 코드에 참고했었는데 그냥 참고 자료에요.
사라는 얘기가 아니고 이거 이제 이 책을 만든 사람 네 이제 코드를 저희 수업 시간에 활용하려고 몇 개를 가져왔는데 본인이 이제 오픈지에 프로그램 실력 향상에 목적이 있을 경우에는 여러 가지 이런 책들을 쭉 다 보시면 될 것 같아요.
하지만 우리 수업에서 이 모든 걸 다 다루진 않을 예정이고요.
그리고 또 우리 에서 다루지 않은 부분이 이제 학생들 한 학기 수업해 보니까 게임 업계에 되게 취업하고 싶은 학생들이 많더라고요.
이제 당연히 컴퓨터 그래픽스의 기본 이론에 대해서는 우리 수업을 다 다루지만 여러 가지 단계 중에서 이 모델링 캐릭터 디자인을 한다거나 이런 부분 저희 솔루션 모델링을 다루지만 그거 아트의 영역은 그래픽 디자이너들이 하는 그런 캐릭터를 어떻게 디자인하고 잘 하느냐 그런 부분에 이제 아름다움의 영역은 저희 수업에서는 다루지 않을 예정입니다.
이거는 사실 컴퓨터 공학의 영역도 아니고요. 그래서 모델링을 위한 3D 맥스나 아이아나 블렌더나 디브레시 지브러시 같은 것들은 이 수업에 포함되지 않을 예정이고 이 수업 시간에 해당 소프트웨어는 다루지 않을 예정입니다.
그리고 VFX나 CG 애니메이션 같은 경우는 사례를 설명하긴 하겠지만 수업에서 심도 깊게 그 내용을 다루지는 않을 예정입니다.
그래서 제가 강의 계획서에서 적혀진 대로 이번 주차에서는 강의 소개를 하고 그다음에 이제 2주 차에서 컴퓨터 그래픽스 아까 말했듯이 이제 수학 기초 다음 주에 할 거고요.
수학 수업이라서 되게 지루할 수도 있어요. 하지만 저희 앞으로 쓸 여러 가지 단계에서 쓰는 선행 대술의 기초는 다음 주에 다 다룰 예정이니까 웬만하면 빠지지 말고 다 들어보시고요.
그다음에 이제 모델링과 여러 가지 순서대로 그래픽스에 나중에 이제 단계 5단계가 나올 텐데 5단계 순서대로 이제 쭉 다 커버가 될 예정입니다.
거의 한 중간고사 이전에 아까 얘기했듯이 이제 쉐이더 부분 페이스 체인지 부분 여기 보면 정점 처리라고 나와 있는 4 5 6주 차 이제 정말 중요한 내용들이 이렇게 다뤄질 예정이고요.
한 4 5 6 7까지 이제 중요한 내용들이 다뤄질 예정이고 나머지 중간고사 이후에는 이제 뭐 그거는 랜더링 이후에 어떤 후처리 후처리나 이런 것들 중요 개념의 이제 에디셔널한 어떤 내용이긴 하지만 어쨌든 중요한 내용을 다루기 예정인데 어쨌든 우리가 배워야 할 수업들은 중간고사 이전에 우리가 좀 커버가 된다 그런 내용 말씀드리고요.
이런 부분 첫 시간에 명확하게 하고 가는 게 좋을 것 같아가지고 언급을 해 줍니다만 어쨌든 중간고사 기말고사는 대면으로 시험을 볼 거고요.
문제 그렇게 많진 않겠지만 수업 시간에 배운 내용 위주로 해서 이제 시험을 볼 거고 과제도 있지만 과제 같은 경우에는 제가 내드리는 코드를 팀별로 이제 랜덤으로 배정해가지고 코드를 내줄 테니 그 다른 수업을 듣는 학생들을 위해서 이 코드는 이제 어떤 식으로 구성되어 있다라는 거를 이제 설명하는 식으로 여러분은 3학년이니까 어느 정도 프로그래밍 경험이 있을 테니까 그런 푸드 설명하는 팀들을 내드릴 예정입니다.
그리고 출석은 수업 시간 출결 체크를 했거든요. 오늘처럼 만약에 이제 여러 가지 사정이 있어서 결석을 해야 되는 학생들은 학교에 이제 경결 미리 하는 신청 프로세스가 있더라고요.
그런 부분 잘 참고하셔가지고 신청하시고 또 지정한 증빙 서류를 잘 준비하셔서 제출하시면은 결석에 대한 부분은 이제 이 체크 이런 부분에 대해서는 이제 출결 체크가 될 예정입니다.
그리고 이제 다음에 사례로 적발될 시에는 점수 감점이 있을 수도 있습니다.
그래서 특히 이제 지금 실습실 같은 경우에는 실습 컴퓨터가 있어서 그리고 이제 요즘은 개인 핸드폰이 많으니까 이거를 너무 대놓고 수업 시간에 게임 영상을 많이 사용하는 하고 있는 거를 저한테 걸리면 본인 점수의 강점이 있을 수 있고요.
그리고 특히 우리 수업은 2시 이후에 하는 수업이어가지고 너무 밥 먹고 날씨가 좀 따뜻해지면은 졸릴 수 있어요.
사람이니까 어쩔 수 없지만 너무 엎드려가지고 적극적인 표현을 하면은 그거는 한 학생의 학습권에 피해를 줄 만한 행동이기 때문에 너무 적극적으로 표현을 하는 경우 제가 경고를 드릴 거고 그럴 경우에는 점수 감소 될 수 있습니다.
제가 미리 말 해둘게요. 그림 그 외에도 여기 이제 실습 시간이 아닌데 이론을 얘기하고 있는데 본인 뭔가 급한 일이 있어가지고 키보드를 계속 이런 치고 이제 과제를 하는지 스팅을 하는지 잘 모르겠지만 어쨌든 키보드 소음을 내는 등과 같은 이제 학생의 학습권에 피해를 줄 만한 행동을 했을 때는 또 적발될 시에 점수 분점이 있으니까 좀 조심하셔서 너무 바쁘면 결석을 하든지 수업에 들어와서 다른 학생들 방해하는 행동은 하지 않았으면 좋겠습니다.
그리고 f를 받을 수 있는 기준은 중간 평가를 미응시한다거나 아니면 기말 평가를 미응시한다거나 아니면 3분의 1 이상 강의 결석할 때는 표가 나갈 수 있고요.
중간 기말 평가할 때 이렇게 다른 학생들 거를 너무 적극적으로 본다든지 그런 부정행위가 있을 수도 있잖아요.
그럴 경우에는 제가 발견하면 경고하고 그냥 술을 드릴 예정입니다.
그래서 그냥 공부를 안 했으면 아은 프레이밍 받는 게 훨씬 낫지 비윤리적으로 이렇게 하는 거를 제가 AI 에딕스를 연구하는 사람이고 해가지고 이런 부분에 의존하니까 그냥 부정행위는 그냥 하지 않는 것이 좋다 이런 부분을 미리 말씀드립니다.
그리고 텍스트 부분 제가 이 강의 자료를 준비할 때 이 두 책을 참고했어요.
오픈 g에 es를 사용한 3차원 컴퓨터 그래픽스 인문이라는 책을 선고했고 그리고 코드는 이 라운드 오픈 지엘이라는 책을 선보했거든요.
그래서 이 두 책을 꼭 사라는 건 아니에요.
제 강의록을 최대한 제가 자세하게 제공하고 있기 때문에 그것만 열심히 공부를 해도 여러분들이 충분히 알 수 있기 때문에 그거 꼭 사지 않아도 되지만 나는 공부를 더 열심히 하고 싶다 하시는 분들은 도서관에서 빌리가 없지 이런 식으로 해서 좀 더 잘 조금 더 공부를 해도 좋을 것 같습니다.
오늘은 뭐 수식 시간이기도 하고 그래서 길게 수업을 하지는 않을 예정이고요.
그래픽스의 인트로덕션 강의 계획서를 제가 오픈한 것처럼 이제 솔루션에 대해서 간단히 설명을 하고 마무리를 할 예정인데요.
컴퓨터 그래픽스에 대해서 여러분들 인터넷에 쳐보거나 아니면 구글링 하거나 아니면 미큐피디아 검색하거나 하면은 여러 가지 디텐션이 많이 나와 나옵니다.
그중에서 제가 이제 정리를 한 거는 이 컴퓨터 그래픽스는 이 시각적 콘텐츠를 디지털로 합성하고 조작하는 방법을 연구하는 컴퓨터 과학의 하위 분야 라고 이야기할 수 있을 것 같아요.
과학에는 여러 가지 고민이 있지만 그중에 이제 이런 분야를 다루는 사회 분야라고 볼 수 있고요.
일반적으로는 지금 이제 3차원 컴퓨터 그래픽스가 너무 광범위하게 많이 사용되고 있기 때문에 3차원 컴퓨터 그래픽 연구를 의미하는 용어로 널리 사용되지만 2차원 그래픽이나 이미지 처리도 사실 이 범위에 포함되고 있습니다.
그래서 또 이제 아까도 언급했지만 이거 이 컴퓨터 그래픽스는 이미지의 아름다움의 문제에 집중한다기보다는 이미지 생성 및 처리하는 데 있어서의 수학적 및 계산 기초에 초점을 맞추고 있는 학문이라고 볼 수 있고요.
그래서 이제 컴퓨터 사이언스에서의 컴퓨터 그래픽은 이런 시각 디자인 이런 측면에서 시각 디자인에서의 컴퓨터 그래픽 분야와 약간 차별화가 됩니다.
그래서 이미지 아까도 얘기했지만 이미지의 아름다움과는 다르게 우리는 약간 계산 기술을 사용해서 시각적 기하학적 정보를 조작하는 어떻게 조작할 것인가 하는 거를 이 학문에서는 연구를 하고 있고요.
3D 실시간 그래픽스의 대표적인 예는 지금 게임이라고 보실 수 있는데 제가 잘 아는 게임이 배틀그라운드밖에 없어가지고 이미 뭐 이거 말고도 더 좋은 3D 그래픽스 사용한 게임이 딱했지만 어쨌든 게임 분야에서 이런 리얼 타임 컴퓨터 그래픽스가 너무 많이 사용되고 있고 그리고 VR에서도 사실 그래픽스가 많이 쓰이고 있죠.
그래서 이게 굉장히 오래된 학문 같지만 사실 그건 아니고요.
한 30년 정도 동안 이제 이런 영화에서 특수 효과나 게임에서 게임이나 VR 등에서 이 3차원 그래픽스의 엄청난 발전이 이루어져 왔습니다.
여러분들 트봇 같은 경우에도 굉장히 최근에 개발된 기술 같지만 사실 챗봇이 처음 나온 것도 1960년대 MIT 공대 어느 교수님께서 사람처럼 말하는 머신을 만들었고요.
AI 딥러닝 이 개념도 최근에 나온 거 맞지만 그 개념도 사실 1960년대에 개발된 개념이거든요.
그런 거에 비하면은 사실 그래픽스 30년에 사실 큰 역사는 아니죠.
하지만 굉장히 30년 동안 되게 눈부신 발전을 해왔다.
그래서 이 영화 같은 경우에 이제 처음 사용된 게 실세계에 존재하지 않는 사물이나 사람을 장면에 인위적으로 탐색하거나 폭발하는 데 지금 처음에 이제 특수 효과를 이용하기 시작했죠.
그래서 지금 너무 고전이 돼버렸지만 커뮤네이터 2라고 이렇게 AI 기반의 기계가 사람들을 공격하는 영화가 있었어요.
근데 거기에서 이제 처음 이런 3D 영화의 3D 그래픽으로 사용이 됐었습니다.
미래에서는 이제 사람들을 해치려고 하는 이제 AI 로봇이죠.
로봇이 이제 자유 자재로 형태를 바꾸는 이제 로봇이었는데 그거를 표현하기 위해 처음에 이제 학습지가 영화에 사용됐어요.
1991년도에 그 이후에 이제 지금 요즘 나오는 영화에서는 3D 그래픽 없는 영화를 보기가 어렵죠.
어벤저스 같은 경우에는 3D가 없으면 만들어질 수가 없는 영화인 것 같고 그 외에도 이제 영화의 일부분이 아니라 아예 장면 전체를 CG로 구성한 그런 프로즌이라든지 아니면 인사이드 아웃이라든지 이런 애니메이션 같은 경우에는 장면 전체를 CG로 구성한 애니메이션으로 우리가 접할 수 있습니다.
이처럼 이 3D 컴퓨터 그래픽은 객체의 3D 표현을 입력으로 가고 이를 처리해서 이미지를 생성하는데요.
보통 다음과 같이 다섯 가지 이제 크롬트 그래픽스가 제작이 됩니다.
그래서 첫 번째가 첫 번째 단계가 이제 모델링이고요.
이 두 번째 단계가 이 모델링한 것들을 움직일 수 있게 사실 우리 애니메이션 리얼타임 애니메이션 리얼타임 그래픽스 같은 경우에는 모델이 움직여야 되는데 이 모델을 어떻게 움직이게 할 것인지를 이제 세팅하는 단계를 이제 리딩이라고 하고요.
그리고 그다음 단계를 이제 애니메이션 그다음 단계는 랜더링 그리고 마지막 프로세스를 후 처리라고 합니다.
이 5개 단계를 하나하나 이렇게 설명을 해드리면 이 모델 관계는 우리가 예를 들어 여러분 우리가 컴퓨터 그래픽을 하는 사람들이 고 어떤 이 교실이라는 3D 공간을 가상으로 만든다고 하면은 그 안에 지금 이스 저처럼 책상도 있어야 되고 모니터도 있어야 되고 또 앉아 있는 학생도 이렇게 조용히 해야 되잖아요.
그거를 이제 3 덩어리가 있게 어떻게 이제 덩어리를 만드는 어떤 타력이 있다면 형태를 만드는 과정이라고 생각을 하면 될 것 같아요.
좀 더 쉽게 그래서 이제 가상 환경에서의 물체의 모습을 컴퓨터가 처리할 수 있는 방식으로 표현한 거고 대부분 지금 여기 보면은 밑에 그림 보면은 그물처럼 이렇게 표시가 돼 있잖아요.
그물처럼 표시됐다고 해서 보통 이제 그물이 치거나 이제 매실이고 폴리곤이라는 영어 단어는 여러 가지 모형이 여러 개가 뭉쳐 있다 이런 얘기거든요.
지금 자세히 보면은 삼각형이 여러 개가 뭉쳐 있는 그물 형태로 된 어떤 메시로 이렇게 엮여 있잖아요.
이 오브젝트가 그래서 얘네들을 이제 폴리곤 메시라고 하는데 대부분의 이 3D 모델은 폴리곤 메시로 이런 식으로 표현이 됩니다.
그래서 자세히 보면은 다 삼각형이에요. 사각형을 쓰기도 하지만 보통 삼각형으로 만드는 게 제일 쉽기 때문에 삼각형이 여러 개 모여 있는 형태로 이제 그물 짜듯이 짜서 이 모델링을 하기 때문에 이제 보통 폴리고 메시로 표현 표현을 폴리곤 메시로 표현하는 것이 일반적입니다.
이게 이제 모델링 단계라고 보시면 되고요.
주로 이 단계 모델링 단계는 아까 얘기했듯이 이제 그래픽스 영역 그래픽 디자이너 영역이 있다고 하는데 이 단계 모델링 단계가 주로 디자이너들이 이제 3D 컴퓨터 그래픽을 다루는 마야나 3D 맥스나 블랜드와 같은 프로그래밍을 이용해서 이런 모델링 작업을 수행하는 게 일반적입니다.
그러니까 우리는 사실 모델링 작업은 디테일하게 다루지 않는다고 했으니까 우리가 이걸 다 생각하지는 않겠지만 대충 이제 어떤 식으로 모델링 하는지 옛날 클립이긴 하지만 제가 참고 자료 가져왔으니까 한번 보겠습니다.
어떤 형태로 페이퍼 디자인이 되는지 한번 볼게요.
그래서 이런 여성 캐릭터를 만든다고 했을 때 굉장히 러프한 폴리고는 여러 가지 조형으로의 현을
그걸 더 잘게 잘게 쪼개는 방식으로 해서 이제 디테일하게 표현하다가 다 합니다.
더 잘게 잘게 쪼갤수록 더 부드러운 연출이 되거든요.
이거는 이제 텍스처링까지 다 입힌 상태예요.
여기에 이제 빛 같은 것도 사실 다 적용을 한 거에
네 이런 과정을 거쳐가지고 하나의 캐릭터가 만들어지는 거라고 보면 되고요.
여기도 약간 다른 프로세스긴 하지만 어쨌든 이 자를 만드는 여기도 결국 이렇게 쪼개가지고 맥시 폴리고 매실 안되죠.
그래서 이런 식으로 해서 이제 모델링이 된다. 모델링이 되고 텍스처링하고 여기도 사실 여러 가지 단계가 들어 있지만 모델링도 있지만 픽스터링도 하고 라이팅도 들어가고 여러 가지 어떤 요소들이 이제 적용이 돼가지고 이런 매력적인 캐릭터가 나온다는 거를 보여드리려고 가져왔고요.
뒤에도 약간 텍스처리가 나오긴 하겠지만 이제 텍스처 모델의 사실성을 더해주는 텍스처가 되게 중요한 작업인데 이게 가장 기초적인 팩처링 방법 중에 하나 사실 프리고 메시 이게 이런 이필 호랑이 가죽처럼 가죽 가죽이라고 해야 되나 이런 것들을 이제 하나하나 만들어 가지고 그래픽으로 만들어서 이제 이거를 이제 케이크에 입히는 방식으로 해가지고 스터 입혀집니다.
그리고 텍스터닝 같은 경우에는 이제 우리 수업 시간에 조금 다뤄질 예정이고요.
리딩이라는 거를 조금 잘 설명을 하자면 설명을 하려고 이제 예시를 들면 이 야구를 하는 선수를 만든다고 했을 때 이걸 3D로 만들어야 한다면은 이 모델 이 캐릭터가 공을 치고 달려가서 이제 베이스로 슬라이딩 할 수 있어야 되겠죠.
그래서 이 선수에게 이제 애니메이션을 적용을 해야 하는데 이걸 어떻게 하느냐 하면은 이 모델 같은 경우에는 뼈가 없어요.
우리 사실은 사람들이 움직여 사람이 움직이는 방식이랑 거의 유사한 개념이 여기 적용됐다고 보면 되는데 스켈레톤 같은 스켈레톤은 이제 한국말로 하면은 뼈대거든요.
그래서 이게 캐릭터 같은 경우에도 스켈레톤을 만 따로 이제 만들고 움직이는 어떤 스케리톤을 만들고 거기에 이제 폴리곤 메시를 결합을 해서 폴리곤 메시가 스켈레톤에 의해서 이제 움직일 수 있는 이런 것들을 수학적으로 이제 표현을 하는 이런 관계를 위킹이라고 해요.
그래서 어떻게 이 뼈의 움직임이 폴리곤 메시에 반영되어야 할지 사람들이 이제 정의를 해 주는 과정이라고 생각하면 되는데 이거는 조금 후반부에 있어가지고 우리가 시간이 되면 다루긴 하겠지만 이거 자세히 다루지는 않을 예정이에요.
어떤 게 리딩이구나 이것만 이제 알면 되고요. 애니메이션이라는 개념은 여러분들 잘 이미 알고 있어요.
여러분들 어릴 때 종이 처음을 이렇게 이렇게 하면은 여기 안에 있던 그림이 막 뛰어가는 듯이 보이는 어떤 이런 거 경험해 보셨을 거예요.
사실 그게 이제 애니메이션이 적용되는 개념이라고 보면 되는데 예전에는 애니메이터들이 그렇게 1분에 30장이었나 정확하게 1분에 한 25장이었나 아가 정확하게 제가 기억이 안 나는데 그렇게 30장 이미지가 한 1분 이상 돌아가야지 12였나 그게 이제 그러니까 그 움직임을 위해서 학습장이 그려준 하나의 움직임이 이렇게 나오는 건데 그걸 일일이 애니메이터들이 이렇게 그렸어요.
그래서 디즈니 애니메이션 같은 경우에는 굉장히 몸값이 높은 애니메이터들이 이제 1번 15번 30번 이미지를 이렇게 그냥 그리면은 나머지 보조 애니메이터들이 이제 그 중간 이미지를 보고 그 이전의 이미지를 이제 예측을 해가지고 다 들어서 30장을 만드는 그런 식으로 애니메이션을 만들었거든요.
근데 지금 이제 지금 그 과정을 이제 컴퓨터가 다 해 주시죠.
우리가 1번 15번 30번 이미지만 지정해 주면은 그 중간에 이미지를 이제 컴퓨터가 만드는 방식으로 이렇게 애니메이션이 만들어지기도 합니다.
그래서 이제 여기 나온 것처럼 이제 그래픽 아티스트가 순차적으로 이렇게 이 밑에처럼 공이 날아오는 거 공을 치는 거 공이 이제 치고 나서 이제 배트를 트는 이 세 가지 이미지로 만들어주면 모션이 이렇게 만들어지겠죠.
이렇게 이 세 가지 이미지만 만들어주면 이제 부드러움 베트공으로 배트를 치는 베트공을 치는 이런 이미지가 완성이 되는 이런 식으로 이제 연출이 되는데 이제 이런 과정들이 어떤 식으로 해서 이루어지는지 이런 부분도 약간 수업 시간을 다룰 예정입니다.
랜더링은 아까 얘기했듯이 우리 이제 메시에 이렇게 거죽을 익히는 이런 텍스터링도 일부 들어가겠지만 아까도 얘기했듯이 이제 표면에 이렇게 예쁘게 머리 머리도 하고 눈썹도 흐리고 얼굴에 피부도 익히고 한 이거 외에도 3D의 질감을 결정짓는 여러 가지 중요한 요소 중에 하나가 지금 이 이미지에 나와 있지만 바닥에 그림자거든요.
여러분들 사람이 그림자가 없으면은 그 사람이 아니라고 하잖아요.
근데 이게 사실은 굉장히 중요하지 않은 것 같지만 3D 그래픽스에서도 이 그림자가 그림자를 연출하는 거 그리고 빛에도 사실 여러 가지 소스가 있어요.
빛 광원, 다이렉트 광원 광원이 있을 수 있고 간접 광원이 있을 수 있고 여러 가지 광원이 있을 수 있는데 여러 가지 광원들을 어떻게 연출을 할 것인가 하는 부분, 라이팅이라는 부분 이런 것들도 이제 더 해서 우리가 잘 받을 예정입니다.
그래서 랜더링 과정은 대단한 건 아니지만 이런 폴리곤 메시의 움직임이 이제 피처링을 했을 때 조금 더 더 캐릭터에 가까운 어떤 이미지 연출이 된다는 거 뒤로 보여드리면 10분 그리고 랜더링에서 이제 중요한 부분이 이제 제가 아까 앞에서 얘기했지만 랜더링 파이프라인이라는 개념이 굉장히 중요하다고 얘기를 했죠.
그래서 이 3차원 상의 물체를 2차원의 테스트 화면을 실제로 실제적으로 표현하기 위한 과정 이거를 이제 러닝 파이프 라인이라고 하고요.
사실은 이제 GPU 안에서 이런 작업들이 주로 이루어지는데 이 GPU 안에 여러 단계들이 있지만 아래와 같이 이제 버텍스 쉐이더 레스터라이저 프래그먼트 쉐이더 아웃풋 머저라는 이런 대표적인 4가지 단계가 있습니다.
그래서 이 네 가지 단계를 GPU 랜더링 파이프라인이라고 하고요.
이 파이프라인이라고 하는 이유가 이 버트스셰이더 단계에서 슝 뛰어넘어서 이제 아웃풋 머드 이러기가 어렵고요.
이거는 반드시 버텍스 쉐이더의 아웃풋이 레스터라이저의 인풋으로 들어가고 그 레스터라이저에서 아웃풋이 또 프래그먼트 시행 들어가고 프래그먼트 쉐이드 아웃풋이 아웃풋 먼저의 이제 인풋이 들어가고 이런 단계를 쭉 거쳐야지 이제 이게 파이프라인 물 흐르듯이 이제 데이터가 흘러간다라고 해서 파이프라인 아키텍처라고 합니다.
그래서 처음에 이제 폴리본 메시로 주전자로 이제 만든 이런 주전자가 이런 GPU 안에서 이제 랜더링 파이프를 타고 나가야 마지막으로 우리가 뭔가 색깔도 입혀지고 여러 가지 패턴도 익혀진 그런 아웃풋으로 이렇게 데이터가 흘러가게 돼서 이렇게 결과물을 얻을 수 있기 때문에 이 파이프라인 단계에 대해서 이제 이 수업 시간에 집중적으로 우리가 할 예정입니다.
마지막으로 이제 포스트 프로세싱 단계인데요. 이제 후처리라고 하긴 하는데 우리가 이제 영화 같은 거 볼 때 저예산 으로 만들어진 CG 들어간 영화 보면은 뭐야 이 CG가 왜 이렇게 허접해 이런 영화들이 있잖아요.
그런 영화 같은 경우에는 이제 후처리 단계에서 돈을 덜 썼을 가능성이 굉장히 높은
그러니까 이거는 뭐 조금 더 여기 보면은 지금 야구 방망이를 흔들고 있는데 여기 이 블러 처리가 좀 돼 있잖아요.
이게 오션 블러 라고 하는데 이런 잔영을 남겨가지고 시각적인 사실성을 높이면은 조금 더 3D가 리얼하게 볼 수도 있잖아요.
이런 것과 같이 여러 가지 그런 것들이 있는데 이런 그래서 이제 이게 필수적인 단계는 아니고 후처리 같은 경우는 선택적인 단계로 기존의 특수 사법을 사용하여서 이제 렌더링이 된 이미지에 사실성이나 효과를 입히는 작업이다라고 이야기를 할 수 있습니다.
오늘은 간단하게 이런 우리 앞으로 어떻게 인터뷰 진행할 거고 인터뷰 시간에 여러분들이 가져가야 할 목적은 뭐고 하지 말아야 할 것은 뭐고 이런 거에 대해서 이제 쭉 설명을 했고요.
다음 주부터는 이제 본격적인 수업에 들어갈 거예요.
아까 얘기했듯이 다음 주 예고 다음 주는 수학을 배울 거기 때문에 굉장히 지루할 수 있다.
하지만 다음 주 수업을 들어야지 여러분들이 그 이후에 여러 가지 단계에서 이제 사용되는 여러 가지 개념들에 대해서 이해할 수 있으니까 웬만하게 하시지 말고 잘 들어 오시고요.
그리고 우리 건물이 너무 구석에 있어가지고 왔다 갔다 하기 힘들고 다른 척 가기 어렵다고 하면서 10분 정도.
'Other > Computer Graphics' 카테고리의 다른 글
컴퓨터 그래픽스 4주차 : 진효진 (0) | 2025.03.31 |
---|---|
컴퓨터 그래픽스 3주차 (1) | 2025.03.24 |
컴퓨터 그래픽스 2주차 - 선형대수학 : 최지현 교수님 (0) | 2025.03.17 |
댓글