심플리곤(simplygon) - 3D 콘텐츠 최적화 도구(모델, 텍스처, 기타) Simplygon는 게임 개발, 가상 현실(VR), 증강 현실(AR), 영화 및 애니메이션 제작 등 다양한 분야에서 사용되며 3D 모델과 텍스처 최적화에 특화되어있는 소프트웨어입니다. Simplygon를 사용하면 시각적 품질을 유지하면서 복잡한 3D모델과 텍스처 해상도를 최적화하여 데스크톱, 모바일 기기, 웹 기반 응용 프로그램등의 저사양 플랫폼에서 시스템 요구사항을 충족하고 성능을 향상시킬수있습니다. https://www.simplygon.com/ Simplygon 다운로드(유료, 무료) 아래 웹사이트에서 SDK(3D맥스, 마야, 블렌더, 후디니, 유니티, 언리얼 엔진)를 다운로드할수있으며 무료버전의 경우 제한된 옵션으로 ..
3D맥스에서 초간단 반사와 굴절 표현(flat mirror, thin refraction wall) 스캔라인렌더러(scanline renderer)와 standard 재질을 사용하여 빠르고 쉬운 방법으로 반사와 굴절을 표현하는 방법 1)plane 오브젝트와 teapot 오브젝트를 생성합니다. flat mirror를 사용한 반사 표현 2)environment and effects의 background 맵에 비트맵 이미지를 설정합니다. 3)재질 편집기(material editor)에서 material 메뉴의 get material를 선택합니다. 4)material/map browser의 scene materials에서 현재 씬에서 사용중인 재질과 맵을 표시하는것을 확인할수있습니다. environment의 맵..
3D 맥스에서 로프(rope) 리깅하기 1)실린더 오브젝트(로프)를 생성하고 높이와 충분한 개수의 height segment를 설정합니다(height - 1000mm, height setgments - 20) 2)systems의 bones 오브젝트를 클릭합니다. 3)bones 오브젝트의 IK Solver에서 IKHISolver를 선택합니다. 4)snap settings에서 grid points에 체크합니다. 5)뷰포트 그리드(grid)에 클릭해서 본(bone) 오브젝트를 생성합니다. 6)길이 1000mm의 실린더(로프)에 사용할 20개의 본 오브젝트를 생성합니다. 7)최상위 본 오브젝트를 선택하고 회전시킵니다. 8)본 오브젝트를 로프 모델에 위치시킵니다. 9)로프 오브젝트에 skin 수정자를 추가합니다...
유니티에 가져오기한(import) 3D오브젝트의 회전(rotation) 재설정 1)3D맥스(3D프로그램)에서 3D모델을 준비합니다. 2)상단의 file 메뉴에서 export의 export selected를 선택합니다(fbx 파일형식) 3)FBX 내보내기(export) 옵션에서 axis conversion의 up axis를 확인합니다. 기본 옵션 Y-up을 선택하고 확인합니다. 4)유니티에서 3D모델을 가져오기합니다(import) 가져오기한 3D 모델의 회전이 설정되어있는것을 확인할수있습니다. 5)씬에 오브젝트를 추가하고 회전(rotation)을 확인합니다. 6)회전(rotation)의 값을 초기화하면 오브젝트도 회전합니다. 7)3D맥스에서 모델의 회전을 반대방향으로 설정합니다. 8)utilities의 r..
3D맥스 브이레이(VRay)에서 PBR 텍스처 설정하기(VRayMtl) (사용 버전 - autodesk 3ds Max 2023, V-Ray 6 Hotfix 3) 1)웹사이트에서 PBR 텍스처를 다운로드합니다 albedo, height, normal, roughness, ambient occlusion(ao) 2)3D맥스 렌더 설정(render setup)의 브이레이 탭(V-Ray)에서 브이레이 환경(GI environment, Refelection/Refraction environment)을 설정합니다. Refelection/Refraction environment에 HDRI 환경을 위한 HDRI environment 맵을 설정합니다. 3)HDRI environment 맵에서 HDRI 파일을 설정합니다...
유니티에서 메시(Mesh)의 정점 와인딩 순서(winding order)유니티는 기본적으로 전면 폴리곤을(front-facing polygons) 렌더링하고 후면 폴리곤을(back-facing polygons) 렌더링에서 제외합니다(cull) 폴리곤은 세 개 이상의 정점으로 구성되며 이 정점들은 일정한 순서로 연결되어 폴리곤의 모양을 결정합니다. 와인딩 순서(Winding order)는 이 정점들을 연결하는 순서를 나타내는것으로 유니티는 시계 방향(clockwise) 와인딩 순서를 사용하여 면이 앞을 향하는지(front-facing) 뒤를 향하는지(back-facing)를 결정합니다. https://docs.unity.cn/2023.1/Documentation/Manual/AnatomyofaMesh.ht..
유니티에서 삼각형 메시 생성 테스트(mesh, triangles)1)아래 스크립트에서 새로운 메시(mesh) 객체를 생성하고 메시를 구성하는 세개의 정점 위치를 할당하고(mesh.vertices) 세개의 정점이 구성하는 삼각형의 정점 인덱스를 설정합니다(mesh.triangles) 2)게임을 시작하면 세개의 위치 정점과 해당 정점의 인덱스로 표현되는 삼각형을 표시합니다. 정수형 배열(mesh.traingles)에 존재하는 세개의 값은 순서대로 삼각형을 구성하는 세개의 정점 인덱스를 의미합니다.https://docs.unity3d.com/ScriptReference/Mesh-triangles.html https://docs.unity3d.com/ScriptReference/Mesh.GetTriangles...
유니티에 가져오기한 3D 모델의 메시 정점 개수 차이 유니티에 가져오기한 3D모델에서 메시(mesh)의 정점 개수(vertices)가 3D프로그램에서 표시하는 해당 3D모델의 정점 개수와 동일하지않습니다. 메시의 정점은 위치(position) 속성 외에도 추가적인 속성(normal, tangent, texture coordinates, color, etc)을 포함하여 두 프로그램에서 서로 다른 정점 개수를 표시합니다. 1)3D맥스에서 폴리곤 오브젝트를 생성합니다. 2)오브젝트의 정점 개수를 확인합니다(verts - 8) 3)유니티에서 해당 3D모델을 가져오기하고(import) 3D모델의 하위에 존재하는 메시를 선택합니다. 4)메시(Mesh)를 구성하는 정점의 개수를 확인합니다(vertices - 24) ..
유니티 메시 데이터(Mesh data) - Mesh, vertices, topology, indices Mesh 메시(Mesh)는 3D 공간에서 위치 콜렉션을 의미하는 vertices, 표면의 각 면을 정의하는 구조 유형인 topology, 표면을 생성하기위해 정점들이 결합하는 방법을 설명하는 정수 콜렉션인 Indices으로 정의됩니다. vertices(정점)은 위치(position) 속성 외에도 선택적 추가 정점 속성(vertex attributes - normal, tangent, texture coordinates, color)을 포함할수있으며 변형 가능한 메시(deformable meshes)에는 Blend shapes, Bind poses 속성이 포함될수있습니다. vertices 정점 속성(ve..
C# 프로그래밍 - 메서드(method) 메서드 메서드(Method)는 클래스 내에 정의되는 함수입니다. 메서드는 특정한 기능을 수행하기 위한 독립적인 코드 블록으로 입력을 받아들이고 일련의 작업을 수행하며 결과를 반환합니다. 또한 객체 지향 프로그래밍에서 메서드는 클래스의 멤버로서 객체의 동작을 정의하고 객체의 상태를 조작하는 역할을 합니다. 메서드를 사용하면 코드를 모듈화하여 재사용 가능한 단위로 분리할 수 있으며 코드의 가독성과 재사용성을 높일 수 있습니다. 메서드의 선언 접근제한자 반환타입 메서드이름(매개변수) { //실행코드 반환문(return)을 사용하여 결과 반환(반환타입이 void인 경우 생략) } 접근제한자 메서드는 접근 제한자를 가지며 외부에서의 접근과 사용을 제어하여 해당 메서드의 가..
C# 프로그래밍 - 변수(Variable) 변수 변수(Variable)는 데이터를 담는 그릇 또는 컨테이너(Container)입니다. 프로그램은 임무를 수행하기위해 데이터를 사용합니다. 변수는 데이터의 저장공간으로 프로그램이 실행되는 동안 데이터를 일시적으로 저장하거나 계산 결과를 유지하기 위해 사용할수있습니다(실행 중에 값이 변경될 수 있으며 값을 읽기 또는 쓰기 가능) 변수는 메모리에 값을 저장하고 참조하기 위해 사용하는 이름이 지정된(식별자, identifier) 메모리 위치입니다. 변수의 선언 변수를 사용하기위해 변수를 선언해야합니다. 변수를 선언하는것은 값(value)을 저장하기 위한 메모리상의 저장 공간을 할당하는것입니다. 변수의 이름과 데이터 유형을 지정하여 변수를 선언할수있습니다. int ..
3D 맥스에서 플러그인(plugins) 설치하고 사용하는 방법 (사용 버전 - autodesk 3ds Max 2014) 3D맥스는 프로그램에 추가 기능을 제공하는 외부 확장 도구인 플러그인을 지원하며 모델링, 애니메이션, 렌더링, 시뮬레이션 등의 작업을 보다 쉽고 효율적으로 수행할 수 있는 다양한 플러그인이 존재합니다. 3D맥스 플러그인은 .dlm, .dlo, .mzp등의 파일 형식을 사용합니다. grass-o-matic 1)플러그인 파일을 준비합니다(.dlo) 2)파일을 맥스 프로그램 폴더의 plugins 폴더에 위치시킵니다. C:\Program Files\Autodesk\3ds Max 2014\plugins 3)맥스 프로그램을 재실행합니다. 플러그인의 사용 방법은 플러그인 제작자가 제공하는 플러그인 ..