← 실계산 조각
SDF 레이마칭 · 프레넬 · 두께 기반 투과 · 블룸 — 이미지 파일 0

혈류 속, 실시간으로

이 화면엔 3D 모델도 텍스처도 없습니다. 적혈구의 가운데가 옴폭한 원반 모양은 거리 함수 한 줄이고, 빛이 세포를 통과하며 붉어지는 것은 광선이 지나간 두께로 계산합니다. 매 프레임 픽셀마다 광선을 쏘아 맞히는 중입니다 — 미리 렌더한 영상이 아니라서 만지면 바뀝니다.

드래그 = 시점 · 슬라이더로 실시간 변경

저 3D 영상과 뭐가 같고 뭐가 다른가

같은 것 — 형태와 빛의 논리

적혈구가 가운데 눌린 원반인 것, 가장자리가 밝게 빛나는 것(프레넬), 얇은 가운데로 빛이 새어 붉게 보이는 것, 초점 밖이 뭉개지는 것. 보는 사람이 "저건 혈액이다"라고 읽는 단서는 전부 계산으로 재현됩니다.

모양은 모델링이 아니라 거리 함수입니다 — 어떤 점이 표면에서 얼마나 떨어졌는지를 수식으로 답하면, 광선이 알아서 표면을 찾아갑니다.

다른 것 — 정직하게

저 영상은 오프라인 렌더입니다. 한 프레임에 수십 초~수 분을 쓰고, 빛이 재질 안에서 수십 번 튀는 것을 다 따라갑니다(경로 추적). 유리 굴절의 색분산, 진짜 표면하 산란, 아티스트가 손으로 다듬은 재질 — 이건 실시간 16ms 예산으로는 못 합니다.

제 화면은 근사입니다. 두께로 투과를 흉내내고, 반사는 한 번만 계산하고, 심도는 후처리 블러로 만듭니다. 가까이 붙여 비교하면 집니다.

대신 얻는 것

저건 그림이고 이건 계산입니다. 슬라이더를 만지면 다시 렌더링하는 게 아니라 지금 이 순간의 값이 바뀝니다. 심도를 0으로 내리면 전부 선명해지고, 투과를 끄면 적혈구가 고무공이 됩니다.

설명하는 글에서 중요한 건 만져서 인과를 확인할 수 있는가입니다. 영상은 그걸 못 합니다.

적혈구 한 개를 만드는 식

① 단면 도해 — 위 화면이 쓰는 그 식을 그대로 푼 것 sdRBC(p, R₀) 의 d = 0 면

왼쪽부터 세로로 2.45배 눌러 납작하게 → 축에 가까울수록 두께를 줄여 옴폭하게. 세 단계가 위 셰이더 sdRBC 세 줄과 1:1로 맞습니다. 점선은 직전 단계의 윤곽입니다.

가운데가 옴폭한 원반

구를 하나 그리고, 중심축 근처만 안쪽으로 파냅니다. 도넛도 아니고 원반도 아닌 그 특유의 실루엣이 두 식의 뺄셈으로 나옵니다.

d = length(p) - R              // 구
r = length(p.xz)               // 축까지 거리
dent = 0.42 - r*1.6            // 가운데일수록 크게
d = max(d, -(abs(p.y) - dent)) // 파낸다

빛이 통과하며 붉어진다

광선이 세포 안을 지나간 거리를 재고, 그 거리만큼 파장별로 빛을 깎습니다. 얇은 가운데는 많이 통과해 밝고, 두꺼운 테두리는 어둡습니다 — 실제 적혈구가 그렇게 보입니다.

t = 안쪽을 지나간 두께
투과 = exp(-t * vec3(0.9, 4.2, 5.0))
       // 붉은빛만 살아남는다

가장자리가 빛나는 이유

표면을 비스듬히 볼수록 반사가 세집니다(프레넬). 정면은 속이 비치고 가장자리는 거울이 됩니다. 이 한 줄이 "젤리처럼 보이는" 느낌의 대부분을 만듭니다.

F = 0.04 + 0.96 * pow(1 - dot(N, V), 5)

실물은 이렇게 생겼다

위 화면에는 3D 모델도 텍스처도 없습니다. 적혈구를 식으로 그린 것입니다. 그 식이 흉내 내려는 진짜 적혈구는 이렇게 생겼습니다.

투과전자현미경 흑백 사진. 하얗게 빈 모세혈관 안에 새카만 초승달 모양 적혈구 하나가 들어 있고, 둘레는 조직 세포다. 왼쪽 아래에 1 마이크로미터 눈금자가 있다.

① 모세혈관 하나에 적혈구 하나

췌장 조직을 얇게 잘라 투과전자현미경으로 본 것입니다. 가운데 하얗게 빈 곳이 모세혈관 속이고, 그 안에 새카맣게 찍힌 것이 적혈구 한 개입니다. 왼쪽 아래 눈금이 1 μm입니다.

모양을 보십시오 — 동그란 공이 아니라 초승달처럼 휘어 있습니다. 위에서 “가운데가 옴폭한 원반”이라고 쓴 그 모양을 가로로 자르면 정확히 이렇게 나옵니다. 가운데가 눌려 있으니 단면에서는 그 눌린 자리가 얇아 보이는 것이고요.

그리고 이 사진이 왜 이 판의 배경이기도 하냐면 — 혈관이 적혈구 하나가 겨우 지나갈 굵기입니다. 줄지어 통과할 수밖에 없고, 그래서 그 물렁한 원반 모양이 중요합니다. 딱딱한 공이었다면 여기서 막혔을 겁니다.

사진 Louisa Howard · 퍼블릭 도메인 · 위키미디어 커먼즈
이 화면은 이 네 종목 이야기입니다● 시세 불러오는 중

기준일을 100으로 놓고 그린 선입니다. 통화가 서로 달라 지수로 겹쳤습니다.

같은 기술의 서로 다른 칸입니다. 주가가 이 기술 때문이라고는 말하지 않습니다.