(RayTracing) Vec3 클래스
거의 모든 그래픽스 프로그램은 벡터와 컬러 클래스를 가지고 있습니다. 많은 시스템들이 4D(3D에 homogeneous coordinate를 더한 기하와 RGB에 alpha를 추가한 컬러)입니다. 강의의 목적으로는 3D 좌표계만으로도 충분합니다. 저희는 vec3 클래스로 컬러, 위치, 방향, 좌표 등등 여러 방도로 사용할겁니다. 몇몇 분들은 이 구조가 맘에 안들 수도 있습니다. location에 color를 더한다던가 말이죠. 좋은 지적입니다만, 저희는 틀리지 않다면 “적은 코드”로 진행하기를 중점에 두고 있습니다. 저희는 vec3 의 alias인 point3, color 를 선언합니다. 두 타입이 vec3 의 a...
(RayTracing) 간단한 이미지 만들기
PPM 이미지 형식
렌더러를 처음 만든다면, 이미지를 보여줄 방법이 필요합니다. 가장 간단한 방법은 파일로 저장하는 겁니다. 이미지 파일은 많은 형식이 있고, 복잡한 포맷인 경우도 많습니다. 여기서는 이미지를 만드는 가장 쉬운 방법인 text 만을 가지고 이미지를 만들 수 있는 ppm 형식으로 시작합니다. 자세한 것은 위키를 참고하세요
저는 하스켈로 간단히 만들어 봤습니다.
module Main where
import qualified Data.ByteString.Char8 as C
data Color a =
Color
{ red :: a
, green :: a
, blue...
(RayTracing) Intro
이 강의를 진행하는 피터 교수님은 수년동안 많은 그래픽스 강의를 해오셨습니다. 레이트레이싱(ray tracing)은 API 없이도 그래픽스 이미지를 만드는 것이 가능합니다. 강의은 빠르고 멋진 프로그램을 만드는 것에 중점을 둡니다.
“레이 트레이싱”은 다양한 의미를 가집니다. 여기서 언급되는 것은 엄밀히 “패스 트레이서”입니다. 교수님는 C++로 개발하지만, 따라야할 필요는 없습니다. 하지만 빠르고, 간단하며, 대부분은 C++로 작성된 렌더러를 사용한다는 점에서 추천합니다. 저는 언어를 haskell로 개발하며, 언어를 익히기 위함을 목적으로 했습니다.
이 강의는 벡터 연산(dot product, vector ...
(Haskell) Project Setup w/ vscode
집이나 회사에서 haskell 프로젝트를 진행하다보면, 환경구성도 똑같이 안맞춰지고 ghc 설치를 시도하다가 stack sandbox ghc와 충돌이나기도 해서 삽질을 많이했다. Dockerfile 로 haskell base 이미지에서 vs-code extension에서 사용되는 패키지들을 stack으로 설치했었다. 우연히 .devcontainer 로 개발환경구성을 편하게 하는 방법을 찾아서 공유한다.
DevContainer in VS Code
프로젝트 폴더 내에 .devcontainer 라는 폴더를 만들고 아래 두 항목을 만든다.
Dockerfile
devcontainer.json
Dockerf...
(책 리뷰) 관계를 읽는 시간
-문요한-
2021.04.23 ~ 2021.05.05, 2021.05.05
사람들은 다들 가면을 가지고 있다. 가족, 연인, 친구, 동료 등등 주위 사람에 맡게 다른 가면을 쓰고 대한다. 사회에 살아가면서 그 가면을 어떻게 다루는 지는 관계에 있어서 중요하다. 나는 스스로 친구 앞에서 쓰는 가면과 동료들 앞에서 쓰는 가면이 어느정도 차이가 있다. ‘그 가면의 차이를 줄이고 싶다’라고 막연하게 생각하고 있었고, 관계에 있어서 어떤 태도를 가져야하는지 고민해보고 싶었다.
78 post articles, 10 pages.