Showing posts with label KeyShot. Show all posts
Showing posts with label KeyShot. Show all posts

February 14, 2019

키샷 (KeyShot) | 건축 인테리어- 익스테리어 렌더링

이전 포스팅에서 키샷을 활용하여 인테리어 렌더링에 대해 소개했는데, 건축물 외부씬의 렌더링에 대한 문의가 있어 하나의 건축물 모델링으로 내-외부 장면 렌더링 작업에 대해서 소개합니다. 키샷의 렌더링은 하나의 HDRI 환경에서 내부 외부의 건축 렌더링을 효과적으로 수행할 수 있어 하나의 모델을 설정하면 여러 장면의 렌더링을 쉽게 작업할 수 있습니다.

​

모델 준비


건축 모델링은 여러 오브젝트들로 구성되기에 일반적으로 개체의 개수가 많고 용량도 큰 경우가 많습니다. 렌더링 작업에서 너무 많은 개체가 존재하게 되면 시간이 오래 걸리게되니, 모델링 작업에서 동일한 재질의 개체들은 하나의 개체로 생성하는 것이 효과적입니다.

또한 라이노와 같이 NURBS기반의 모델링으로 작업하는 경우 라이노에서 미리 적은 수량의 폴리곤 메쉬로 전환하면 용량을 줄일 수 있습니다. 라이노에서는 메쉬로 전환된 개체들 중 동일 재질의 개체들을 결합(Join)하여 하나의 개체로 쉽게 합칠 수 있습니다. 예제에서 사용된 3D 모델링은 sketchuptextureclub.com 의 모델로 스케치업 모델이라 이미 폴리곤메쉬의 데이터인데, 라이노에서 동일 재질별로 결합, 분류하였습니다.


라이노에서 동일 재질의 개체별로 결합( 화병 두개 결합 , 의자 파트들 결합)


환경 조명(HDRI)


인테리어 장면과 마찬가지로 외부 장면도 HDR이미지를 활용한 조명으로도 충분히 렌더링 작업이 가능합니다. 외부 장면의 경우 표현하고자 하는 빛의 조건에 맞는 HDR이미지를 선택하여 사용하면 되는데, HDRIHaven과 같은 사이트에서 무료로 공개된 HDR이미지를 활용할 수 있습니다. HDRIHaven 은 클리핑되지 않은 다이나믹 범위의 고품질 HDRI를 무료로 제공하고 있습니다. 사용결과가 만족스러운 분들은 기부 프로그램에 참여하시는 것도 앞으로 HDRIHaven에서 더 좋은 HDRI 이미지를 계속 공유하는데 도움이 될 것 같습니다.

인테리어 모드 사용


외부 장면이라도 건축물의 경우 조명 조건이 복잡한 경우가 대부분이라서 Product Mode보다는 Interior Model가 훨씬 효과적입니다. 예제 렌더링에서는 Interior 프리셋을 사용하고 그외 라이팅 관련 설정은 수정하지 않았습니다.

​


카메라별 이미지 스타일 사용


KeyShot 8에서는 포스트프로세스인 Image Style을 여러가지를 설정하여 사용할 수 있어 유사 장면 별로 서로 다른 이미지 스타일을 사용할 수 있어 내-외부 장면을 동시에 렌더링하는 경우 아주 효과적입니다. 예제에서는 저장된 각 카메라별로 이미지스타일을 따로 설정하여 렌더링하였는데, 이러한 여러 이미지스타일을 사용하는 것은 모델에 주어진 조명은 동일하지만 각 카메라 뷰마다 이미지의 출력을 제어할 수 있습니다.

주간 조명의 경우 실제 환경에서도 창에서 들어오는 외부 조명만으로는 내부가 어두운 경우가 많습니다. 물론 이런 경우에 내부에 별도의 조명을 설치하거나 창에 조명을 설치할 수도 있으나, 이미지스타일만 수정하여도 내-외부 장면을 하나의 모델- 하나의 조명 설정으로 렌더링할 수 있습니다.


키샷8의 여러 이미지 스타일 설정 및 사용

렌더링 예시


아래 이미지는 별도의 보정작업 없는 키샷의 렌더링 결과로 렌더링 시간은 인텔 i9-7940X CPU를 이용한 결과입니다. 렌더링 작업에 대한 전체적인 흐름을 설명하기 위한 예제로 재질은 별로 작업되지 않고 이미지 매핑에 기본적인 반사 정도만 적용된 상태입니다. 벽체의 경우 Occlusion을 이용하여 음영부분을 강조하였으며, 건물 근처 잔디는 라이노에서 스크립트를 이용하여 폴리곤메쉬로 생성한 모델입니다.​


외부 장면-1 / 1분51초 렌더링 시간 @ 1920*1080Size 60Samples
외부 장면- 2 / 2분07초 렌더링 시간 @ 1920*1080Size 60Samples
내부 장면-1 / 2분54초 렌더링 시간 @ 1920*1080Size 60Samples



​

키샷(KeyShot)을 활용한 인테리어 렌더링



키샷은 간편한 작업환경, 빠른 렌더링 속도로 제품디자인, 자동차, 주얼리 등의 오브젝트 렌더링 작업에  많이 활용되고 있습니다. 키샷6버젼 부터는 인테리어 렌더링 모드를 지원하기 시작해 현재 버젼인 8버젼에서는 간단하게 Tone mapping을 처리할 수 있는 포스트프로세싱 기능이 좋아져 건축이나 인테리어의 렌더링 작업에도 아주 효과적으로 활용할 수 있습니다.

3D 모델 가져오기

키샷은 건축 모델링에 주로 사용하는 스케치업, 레빗, 라이노, Max 등 여러 3D모델링 파일을 직접 읽을 수 있어 어떤 CAD로 작업하던 별 어려움 없이 데이터를 전달할 수 있습니다. CG작업에 많이 사용하는 FBX포맷을 이용하면 모델링에서 설정한 애니메이션도 렌더링하는데 문제가 없습니다.


KeyShot 지원 3D File Format
3ds Max (.3ds) [1]
ALIAS 2018 and prior [2]
AutoCAD (.dwg, .dxf)
CATIA v5-6 (.3dxml, .cgr, .catpart)
Cinema 4D R18 and prior (.c4d)
Creo 5.0 and prior (.prt, .asm)
Creo View (.pvz, .pvs, .edz, .ed, .c3di, .ol)
Inventor 2019 and prior (.ipt, .iam)
Maya 2017 and prior (.ma, .mb) [2]
NX 12 and prior (.prt)
Onshape [1]
Pro/ENGINEER Wildfire 2-5 (.prt, .asm)
Revit 2018 and prior [1]
Rhinoceros 6 and prior (.3dm)
SketchUp 2018 and prior (.skp)
Solid Edge ST10 and prior (.par, .asm, .psm)
SolidWorks 2018 and prior (.prt, .sldprt, .asm, .sldasm)
Acis (.sat)
Alembic (.abc) [3]
3DS (.3ds)
3DXML (.3dxml)
Collada (.dae)
FBX (.fbx) [3]
IGES (.igs, .iges)
JT (.jt)
OBJ (.obj)
Parasolid (.x_t)
STEP (.stp, .step)
STL (.stl)
ZPR (.zpr)
[1] Plugin only
[2] Requires licensed installation of software
[3] Includes animation

또한 키샷의 플러그인을 사용하면 3D모델링 소프트웨어와 키샷을 연결하는 라이브링킹 기술을 이용할 수 있습니다. 3DMax, Maya, 라이노, 스케치업, 레빗 등 아래 링크에서 플러그인을 다운받아 사용할 수 있습니다. 라이브링킹을 사용하면 모델러에서 바로 키샷으로 데이터를 넘길 수 있으며, 모델링이 수정되면 키샷 씬의 설정과 재질을 유지하면서 지오메트리를 업데이트할 수 있습니다.

라이브링크 가능한 키샷 플러그인



 인테리어 모드, 라이팅

 키샷에서 인테리어 장면 등 복잡한 씬의 렌더링은 인테리어 모드를 사용하는 것이 필수적인데, 프로젝트 윈도우의 라이팅 탭에서 설정할 수 있습니다.
기본 설정되어 있는 Interior 프리셋을 사용하면 렌더링 모드가 Interior모드로 설정되고 Global Illuminaton을 사용하도록 설정됩니다. 필요에 따라 Ray Bounce와Global Illumination Bounce를 설정하면되는데, 렌더링 모드는 꼭 Interior Model를 사용해야 합니다.
기본적으로 라이팅 설정은 환경 맵에 외부 장면의 HDRI를 이용하고 오프닝(창, 문 등)이 있는 곳에 Area Light를 이용하여 내부를 좀 더 밝힐 수 있도록만 설정하면 됩니다.
내부에 인공 조명이 있는 경우 Area Light, IES Light, Point Light, Spotlight 를 사용할 수 있습니다. 키샷에서 조명은 개체의 재질에서 선택하므로 모델링 에 광원에 해당하는 개체를 포함시키는 것이 필요합니다.


이미지 스타일

키샷8.0에는 실시간 렌더링 결과에 다양한 이미지 스타일을 적용시킬 수 있는 이미지 스타일 기능이 추가되었습니다. 기존에 밝기, 감마만 조절되던 것에서 Tone mapping(톤매핑), Curve, Color(Saturation, Vibrance), Layer 추가,  Bloom(조명 주변  블러),  Vignetting(비네팅), Chromatic Aberration(색수차) 등의 기능이 추가되어 포토샵의 후보정 없이 키샷 내에서 아주 손쉽게 렌더링 결과를 다양한 이미지로 연출할 수 있습니다. 여러개의 이미지 스타일을 추가하여 작업할 수 있으며, 이미지 스타일은 렌더링 작업에 영향을 주지 않고 이미지를 조절합니다. 
키샷의 이미지 스타일 사용


렌더링 샘플아래 

이미지는 플러스플라스틱의 키샷 인테리어 렌더링 교육의 예제 결과 이미지로 모델링이 재질별로 레이어 분류가 되어 있는 상태에서 키샷의 라이팅, 재질 설정이 10~20여분 소요된 결과물입니다.키샷은 전적으로 CPU를 사용하는 렌더러로 빠른 CPU를 사용하면 렌더링 시간을 많이 줄일 수 있습니다. 기본적으로 인텔의 i7, i9, Xeon, AMD의 스레드리퍼, 라이젠 등 고성능의 멀티코어 CPU를 사용하면 렌더링 시간을 빠르게 할 수 있습니다. 아래 이미지의 렌더링 시간은 인텔 i9-7940X CPU를 이용한 결과입니다.

30분30초 렌더링 시간 @ 120샘플, 1920*1080 크기

3분34초 렌더링 시간 @ 60샘플, 1920*1080 크기
인테리어장면의 렌더링은 건축, 인테리어 디자인 작업에서뿐만 아니라 제품디자인에서도 디자인한 제품의 실제 사용 환경을 연출하는데 아주 필수적인 시각화 방법입니다. 지금까지 키샷으로 제품만 렌더링하고 인테리어 장면은 사진합성 혹은 다른 렌더러를 사용하신 디자이너분들은 최근 키샷버젼에 새로 추가된 인테리어 모드를 활용하면 아주 쉽게 인테리어 장면을 연출할 수 있게 됩니다. 건축, 인테리어 디자인 작업에서도 키샷 특유의 빠르고 효과적인 작업 환경에 익숙해지면 어떤 렌더러 보다 효과적으로 렌더링 작업이 가능할 것입니다.

플러스플라스틱은 국내 유일의 공인 키샷 플래티넘 리셀러로 키샷 소프트웨어 공급뿐만 아니라 효과적인 사용을 위해 새로운 사용법을 연구하고 정확한 사용자 지원 ,교육을 위해 노력합니다




February 13, 2015

Twist & Flow along circle


 오랜만에 블로그 포스팅합니다. 지난 1월 라이노스 모임에서 소개한 꼬인 형상 모델링을 NURBS 서피스가 아닌 폴리곤으로 진행하여 Weaver bird를 이용하여 서브디바이드해 보았습니다. Flow 이후에는 CageEdit를 이용하여 조금 편집해 보았습니다.

 


위 사진은 FDM 3D 프린터로 출력한 모형입니다. 아래 렌더링은 KeyShot의 Translucent 재질을 이용하였는데, 렌더링 시간 문제로 노이즈가 좀 심한 편입니다.








March 10, 2011

Renderings in Rhino

최근 라이노에 다양한 렌더러의 사용이 가능해져 어떠한 렌더러를 선택하느냐가 디자이너들의 고민이 되고 있습니다. 여러 렌더러 중 라이노의 Render 디스플레이 모드, KeyShot, Vray를 이용한 렌더링의 예를 들고자 합니다.

1. 라이노 뷰포트 내의 렌더모드의 활용




라이노의 기본 렌더링 뷰포트 모드로 환경 맵 및 텍스쳐 맵을 이용한 렌더링입니다. 렌더 모드를 이용했을때 장점은 빠르게 모델링 과정중 모델의 상태를 간단한 질감으로 표현 해볼수 있다는 것입니다. 물론 단점은 Raytrace를 사용하지 않기에 정확한 반사, 굴절에 의한 재질은 표현할 수 없으며, 라이팅의 사용도 제한적입니다.
라이노 V5에서는 HDRI를 스카이 라이트로 활용할수 있으며 실시간 그림자도 가능하니 조금 더 실물과 같은 렌더링에 근접한 작업이 가능합니다.


2. KeyShot을 이용한 리얼타임 렌더링



KeyShot의 경우 빠른 작업환경을 제공하여 완성된 모델의 렌더링뿐만 아니라 모델링 작업 중간에 미리 렌더링을 통해 재질이 적용된 형태를 직접 확인하면서 디자인작업을 할 수 있는 것이 장점입니다. 라이노 내에서 작업은 불가능 하지만, 라이노에서 플러그인을 이용하여 간단히 KeyShot으로 모델을 넘겨 렌더링 작업이 가능합니다.



리얼타임 렌더러로 KeyShot의 장점은 CPU를 사용하여 특별한 GPU 하드웨어를 요구하지 않으며 사용이 쉽다는 것입니다. HDRI에 의한 스카이라이트가 주 조명으로 역할하여 오브젝트 위주로 렌더링할때는 아주 빠르게 높은 품질의 렌더링이 가능합니다. 그러나 인테리어 장면 등 라이팅이 복잡한 계산을 요하는 경우는 렌더링속도가 느리고 라이팅의 종류가 제한적이라 어려움이 있습니다.


3. Vray을 이용한 렌더링



브이레이, 브라질, 플라밍고 등 라이노 내부에서 작동하는 렌더러를 이용하는 경우 모델링 데이터의 이동이 필요없고 3dm파일에 모든 렌더링 세팅이 저장되기에 여러가지 장점을 가집니다. 이 중 브이레이는 현재 가장 널리 사용되는 GI렌더러 중 하나로 렌더링 세팅에 따라 퀄리티와 속도를 적절히 조절할 수 있으며, Distributed rendering이 가능하여 여러대의 컴퓨터로 하나의 렌더링 작업을 수행할 수 있어 큰 사이즈의 최종 렌더링 작업시 여러대의 컴퓨터로 작업하는 경우 시간을 많이 줄일 수 있습니다. 또한 라이노 내부이세 실행되기에 환경 세팅 및 렌더링 설정 등을 저장해두고 반복하여 사용하기가 용이 합니다.
위 이미지는 VrayForRhino를 이용한 것으로 가로 1000픽셀 정도 크기의 렌더링이 1대의 노트북 및 2대의 PC를 이용하여 2분30초 정도 소요되었습니다. 클릭하시면 원본크기의 이미지를 확인하실 수 있습니다.

December 7, 2010

RhinoScript | Recursion - Menger sponge



Rhinoscript를 이용한 Recursion의 수업 예제로 만들어본 Menger sponge인데, 개체의 수가 많이지니 라이노에서 렌더링 자체가 문제가 된다. 그래서 Block을 이용해보았으나 Rhino내에서 디스플레이나 라이노렌더 등은 문제가 없으나 V4에서 Vray로 렌더링시 Block을 이용한 경우는 그나마 괜찮긴한데 메모리 문제로 렌더링 불가.. 참고로 나의 노트북 메모리는 6GB이다. 그런데 같은 모델을 Keyshot으로 넘겨서 테스트를 해보니 너무 문제없이 잘된다. Keyshot파일로 저장하니 라이노 블럭으로 66MB이던 파일이 1.45GB로 커지긴하지만 렌더링에는 전혀 문제가 없었다. 아래는 메쉬 박스를 블럭으로 만들어 Menger sponge를 모델링하는 스크립트이다. Function 호출시 menger_sponge strBox, 0, 4 로 호출하면 위 그림과 같은 단계까지 반복한다.


Option Explicit
main
Sub main()

Dim strBox, arrCorners, arrObjects

arrCorners=Rhino.GetBox  
If IsNull(arrCorners) Then Exit Sub
 
strBox= AddMeshBox (arrCorners)
Rhino.SelectObject strBox
Rhino.Command "-NoEcho Unweld 10 enter", False
Rhino.Command "-Block 0 enter enter enter enter", False
Rhino.UnselectAllObjects
Rhino.Command "SelLast"
arrObjects=Rhino.SelectedObjects
strBox= arrObjects(0)

Rhino.EnableRedraw False

menger_sponge strBox, 0, 2

Rhino.EnableRedraw True
 
End Sub

Function menger_sponge(strBox,N, NL)
 
  Dim arrCorners, lX,lY,lZ, X,Y,Z, arrBox(2,2,2), arrPoint
  IIf N < NL Then
    arrCorners=Rhino.BoundingBox(strBox)
    lX = (arrCorners(1)(0)-arrCorners(0)(0))/3
    lY = (arrCorners(3)(1)-arrCorners(0)(1))/3
    lZ = (arrCorners(4)(2)-arrCorners(0)(2))/3

    strBox=Rhino.ScaleObject(strBox,arrCorners(0), Array(1/3,1/3,1/3))
   
    For Z=0 To 2
      For Y=0 To 2
        For X=0 To 2
          If ((Z=1 And (X+Y) Mod 2 <>0) Or (X=1 And Y=1) ) Then
            arrBox(X,Y,Z)=Null
            Else
            arrPoint= Rhino.PointAdd(arrCorners(0),Array(lX*X, lY*Y, lZ*Z) )
            arrBox(X,Y,Z) =  Rhino.CopyObject (strBox,arrCorners(0), arrPoint)          
          End If
        Next
      Next
    Next
    Rhino.DeleteObject strBox
   
    For Z=0 To 2
      For Y=0 To 2
        For X=0 To 2
          If Not IsNull(arrBox(X,Y,Z)) Then
          menger_sponge arrBox(X,Y,Z), N+1, NL
          End If     
        Next
      Next
    Next
   
 
  End If
End Function


Function AddMeshBox (arrPoints)

  Dim arrFace(5)
  arrFace(0) = Array(3,2,1,0)
  arrFace(1) = Array(0,1,5,4)
  arrFace(2) = Array(1,2,6,5)
  arrFace(3) = Array(2,3,7,6)
  arrFace(4) = Array(3,0,4,7)
  arrFace(5) = Array(4,5,6,7)
 
  AddMeshBox = Rhino.Addmesh (arrPoints, arrFace) 
 
End Function