본문 바로가기

Meshfusion, 불리언 연산의 혁신 Meshfusion, 불리언 연산의 혁신 3D 그래픽 분야에서 불리언(Boolean) 연산은 두 개의 개체를 합하거나(Union), 하나의 개체에서 다른 개체를 빼거나(Subtraction),두 개체의 공통 부분을 추출(Intersection)해 내는 과정을 말한다. 이론적으로는 여러 형태의 모델들을 조합하여 복잡한 모델을 새로이 창출해 낼 수 있는 강력한 도구이지만, 이를 실제로 이용하여 높은 품질의 렌더링 결과를 만들어 내는 것은 매우 어려운 작업이다. 대부분의 3D 패키지에서 불리언 연산을 지원하고 있지만, 경계부의 메시가 지저분해지고 경계 부분이 칼로 자른 듯 각지게 나타나는 등의 문제가 있어, 복잡한 개체에서는 사용하기 어렵다는 단점이 있다. 이를 위해 NURBS 기반의 프로그램을 사용하는 것도.. 더보기
Physically Based Rendering Physically Based Rendering 1, 서론 Physically Based Rendering 또는 Unbiased Rendering은 정확한 물리 법칙을 이용하여 빛의 경로를 계산하고 물질의 재질을 표현하고자 하는 렌더링 방법이다. 특히 핵심이 되는 것은 광원으로부터 직접 물체에 도달하는 빛 뿐만 아니라 다른 물체로부터 반사되어 오는 빛, 즉 간접 조명을 계산하는 방법이다. 이러한 간접 조명을 표현하여 렌더링하는 것을 Global illumination (GI)이라고도 하며, 오늘날 대부분의 렌더러가 GI를 지원하지만, 피지컬 렌더러에서는 이러한 간접적인 빛을 계산하기 위해 보다 물리적 광학 현상에 가까운 알고리듬을 사용한다. 이렇게 간접 조명을 정확히 표현하기 위한 시도는 오래전부터안 계.. 더보기
수전 케인 - The power of introverts 더보기
나의 3D 모델러 예전 POV-Ray 나 BMRT 로 렌더링하면서 적당한 모델러가 없어서 개인적으로 만들어 사용한 모델러이다. 원래 어셈블리로 만들었는데, C# 으로 다시 짰다가 성능에 문제가 있어 Qt 기반의 C++ 로 다시 만들고 있다, 베지어 패치 기반의 모델러로서, 대단한 기능은 없지만, 이제 손에 완전히 익어 나의 분신같은 존재이다. 모델링한 파일을 후디니에서 불러서 렌더링한 이미지. 이제 UV매핑도 된다. (2012.2.5) 스컬프팅도 된다.(2012.2.16) ㅋㅋㅋ Version 0.1 출시(?) 블렌더에서 헤어 붙이고 렌더링한 모습 더보기
사무실 이전 회사 이전으로 새로 단장한 사무실, 햇살이 들어서 너무 좋다. 창문 밖으로 보이는 스타타워 건물. ㅎ, 더보기
오래된 책들 오늘 정리한 오래된 책들. 어셈브리 책들은 책장이 너덜너덜해질 정도로 읽었던 것들인데. 더보기
Maemo + Moblin -> MeeGo Maemo + Moblin -> MeeGo 노키아의 차세다 모바일 운영체제인 마에모와 인텔의 모블린이 결합하여 새로운 모바일 플랫폼인 미고가 탄생하게 되었다. 2009년 중반부터 진행된 합병 프로젝트는 이미 상당한 진척을 이룬 것으로 알려지고 있는데, 미고는 스마트 폰 뿐만 아니라 넷북과 차량용 기기, Connected TV 까지 지원할 예정이며, 2010년 2사분기에 첫 버전의 발표를 예고하고 있다. 현재까지 알려진 사실로는, 패키징 시스템은 데미안 형식이 아닌 RPM 이 될 것이며, 모블린 코어 소프트웨어 플랫폼에 기반하며, ARM 과 X86 시스템을 모두 지원한다는 것이다. 미고의 탄생은 식을 줄 모르는 아이폰의 위세와 새롭게 떠오르는 안드로이드에 위협받은 두 전통 강호의 어쩔수 없는 선택이라는 측.. 더보기
C++ Meta-Programming C++ Meta-Programming C++ 메타 프로그래밍은 컴파일 시에 메타 데이타를 이용하여 값 또는 타입의 연산을 하는 기법이다. 1. 값(value)의 연산 프로그램 중에 10! 값을 사용할 필요가 있다고 하자. 이 경우, 여러 가지 방법을 사용할 수 있다. (1) 직접 계산 가장 간단한 방법은 10! 값을 계산기로 계산하여 넣어 주는 것이다. int n = 3628820 ; //10! (2) 함수의 사용 팩토리알을 계산하는 함수를 사용할 수도 있다. int n = Factorial(10) ; ... int Factorial(int n) { return n == 1 ? 1 : n * Factorial(n-1); } 이 방법은 다른 팩토리알 값도 계산할 수 있다는 이점이 있지만 런타임 시에 계산되.. 더보기