expo를 이용해봅시다.직접 react-native도 다운로드하고, 필요한 것들도 따라서 다운로드 해서 초기 환경을 세팅할 수도 있지만, expo를 이용하면 간단하게 리액트 네이티브 초기환경을 세팅할 수 있습니다. 또한 expo에서 제공해주는 여러 편리한 기능들이 있는데, 아마 가장 많이 사용하는 것이 아이콘 관련 기능일 것이고, 또 많이 사용하는 것이 다 만들고 나서 build할 때 그냥 간편하게 할 수 있다는 것이라고 생각합니다. expo에서 제공해주는 icon 보러가기 이처럼 해당 아이콘들을 간편하게 불러와서 사용할 수도 있고, 또 색을 넣을 때라던가 사용자가 이미지와 같은 리소스들을 다 불러올 때까지 앱로딩 화면을 보여주는 등의 기능도 있기 때문에 expo를 이용하는 것이 여러모로 이점이 많습니다..
모든 것을 다 정의했으니 이제 렌더링 해보겠습니다.렌더러도 여러 종류가 있지만 보통 WebGLRenderer를 사용합니다. 코드를 보시면 antialias에 true를 전달한 것이 보이시죠?예전 게임들 보시면 캐릭터 등 모양이 각져 있는 것을 볼 수 있는데, 이는 사각형 점을 찍어서 모양을 나타내기 때문입니다. antialias는 형체의 끝부분과 연결된 부분을 배경색과 형체색의 중간색으로 해서 이 각진 부분을 부드럽게 만들어 주는 것입니다. 저는 이 옵션을 사용하겠다고 전달한 것입니다. 렌더링할 사이즈(캔버스의 크기)를 설정하신 다음 body태그에 renderer.domElement를 자식으로 추가해주시면 됩니다. renderer.domElement는 우리가 그린 것들이 담겨 있는 캔버스 태그입니다. 이..
mesh는 2가지로 나눠져 있습니다.바로 형태와 재질입니다. 왜 이 두가지를 구분했을까요? 똑같은 형태지만 여러 가지의 재질 및 색깔을 사용할 수 있고, 다른 형태들이지만 동일한 재질 및 색깔을 사용하기 편하려면 둘을 구분해서 사용하는 것이 타당하겠죠? 위의 것을 three.js의 용어로 나타내면 mesh는 geometry와 material로 나눠져 있다고 할 수 있습니다. 문서에 보면 아주 많은 형태들이 나타나 있습니다. 우리가 할 건 하고 싶은 형태를 선택한 후 값을 전달하면 되는 것 뿐입니다. 가장 무난한 BoxGeometry를 선택했습니다. 너비, 높이, 깊이를 전달하면 간단하게 만들어줍니다. 재질은 (예시에서) 많이 사용되는 것을 꼽아보자면 MeshBasicMaterial, MeshLambert..
scene을 정의했으니 이제는 camera를 만들어봅시다.설명들에 비해서 코드는 되게 짧습니다. 전체 자바스크립트 코드는 50줄 정도되지만 한번에 쓰기엔 설명할 것들이 너무 많게 느껴져서 이렇게 부분을 나눠서 설명하는 것을 이해해주세요. 많은 예시를 보면 보통 두 개의 카메라를 사용합니다. PerspectiveCamera와 OrthographicCamera입니다. 둘의 차이는 원근법이 나타나는 지 나타나지 않는 지를 생각하시면 됩니다. PerspectiveCamera가 원근법이 나타나기 때문에 예제에서 자주 사용되어 집니다. 공식 문서에는 PerspectiveCamera(fov: Number, aspect: Number, near: Number, far: Number)라고 나타나 있습니다. 각각의 값이 ..