4월 말에 발표 났는데 … 충분히 공부해볼 시간이 있었을텐데 … 아니 다른 것도 공부 핑계다 게을러서 못 한 거지 다 정말 열심히 했는데 못 한 건가 … 하면 답은 당연히 노
오늘의 할 일
web vendingMachine step6 pr 및 리뷰 공부 – 1차 pe [O] – 리뷰 후 이론 공부 및 리팩토링 []
three.ar.js를 이용하여 앱 만들기 시작 — 리서치 및 뭐 만들지 구상 []… 어렵다 — 아이디어 — firebase이용 배포 페이지 ->예제 핸드폰으로 실행시켜보기 [O] — 배포 페이지로 threeAr 예제들 활용 custom -> 객체들 생성 및 연습 [] (edited)
리뷰
– 리뷰 후 이론 공부 및 리팩토링 []
catch 말고 다른 이름 listen.. -> on을 많이 쓰는 듯 on으로 네이밍 수정 ! try Catch 간단한 함수들 네이밍 신경 + 그냥 바로 쓰기 dispatcher는 무엇일까? 그리고 promise
핵데이
요구사항들 필수
오늘 예제 구동 [O] 예제 구동 하고 스크립트 이해하기 [] 추가 개발 환경 구성 -> 빌드파일 웹팩을 이용해서 빌드하기 [] 지금 script script 덕지 덕지… 팬시하지 않음 ㅜ
예제에서 사용되는 3D 모델을 새로운 모델 (google poly, sketchfab 등의 사이트에서 구하거나 Qlone 앱으로 직접 스캐닝 하거나, 직접 모델링 하거나) 로 교체해 볼 수 있다.[] WebVR 표준 그리고 AR 프레임워크(ARKit/ARCore)의 역할에 대한 이해를 기반으로 three.ar.js 사용법에 대한 토론/논의가 가능하다. []
요구사항(선택) 물리엔진을 통한 Plane 과 Object 간 충돌을 구현할 수 있다. [] 외부데이터를 공간 상에 시각화 할 수 있다. [] 포탈(!) 을 만들 수 있다. [] 본인의 아이디어를 구현할 수 있다. []
Three.arutils.getARDisplay ->는 promise로 display를 가지고 온다 이를 vrdisplay에 저장하고 init함수 실행
// 2번 arDisplay 모듈 가져오고 init함수 실행
// 중요한 것 세가지 씬, 카메라 , 렌더러 // 처음에 렌더러 부터 세팅을 한다. threeJs와 마찬가지로 webglRender 인스턴스를 생성해서 render에 적용
// 디버깅 세팅
// threeJs에서 perspectiveCamera라는 첫번쨰 속성은 시야각 , 두번째는 가로/세로 apspectRatio 나머지 두가지 속성은 clipping plane의 near /far값인데 ArPerspectiveCamera에는 vrDisplay가 첫번쨰 인자로 나머지는 같은 값을 받고 마지막 2인자는 vrDisplay의 near, far값을 갖는다. // THREE.ARPerspectiveCamera ( vrDisplay, 60,window.innerWidth / window.innerHeight,vrDisplay.depthNear vrDisplay.depthFar) 이런 값들이 들어온다.
functioninit() { // Setup the three.js rendering environment renderer = new THREE.WebGLRenderer({ alpha: true }); renderer.setPixelRatio(window.devicePixelRatio); renderer.setSize(window.innerWidth, window.innerHeight); renderer.autoClear = false; canvas = renderer.domElement; document.body.appendChild(canvas); scene = new THREE.Scene();
// Turn on the debugging panel var arDebug = new THREE.ARDebug(vrDisplay, scene, { showLastHit: false, showPoseStatus: false, showPlanes: true, }); document.body.appendChild(arDebug.getElement());
// Creating the ARView, which is the object that handles // the rendering of the camera stream behind the three.js // scene arView = new THREE.ARView(vrDisplay, renderer);
// The ARPerspectiveCamera is very similar to THREE.PerspectiveCamera, // except when using an AR-capable browser, the camera uses // the projection matrix provided from the device, so that the // perspective camera's depth planes and field of view matches // the physical camera on the device. camera = new THREE.ARPerspectiveCamera( vrDisplay, 60, window.innerWidth / window.innerHeight, vrDisplay.depthNear, vrDisplay.depthFar );
// VRControls is a utility from three.js that applies the device's // orientation/position to the perspective camera, keeping our // real world and virtual world in sync. vrControls = new THREE.VRControls(camera);