묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결React Three fiber(R3F)로 배우는 인터렉티브 3D 웹 개발
섹션 10을 들었을때 궁금증
primitive는 map을 통해 texture를 불러올 수 없을까요? 다른 텍스쳐 불러오는 연습을 하면서 Material에서는 map이라는 속성을 통해 texture를 불러올 수 있다고 알게 되었는데 primitive에서는 안되서 궁금합니다!
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
리액트/next.js와 같이 사용하는 강의 계획은 없으신가요?
강의 잘 듣고 있습니다!혹시 리액트/next.js와 같이 사용하는 강의 계획은 없으신가요?
-
해결됨Three.js 3D 인터랙티브 바로 시작하기
잘 안되네요
섹션8에서 42강의에서 질문드려요...강사님 파일 보고 열심히 수정해보긴 했는데,이미지가 4개인데 1개밖에 나오질 않아서요혹시 몰라 소스를 올려봅니다.
-
해결됨Three.js 3D 인터랙티브 바로 시작하기
버전에 대해서....
cdnjs 에서 보면 three.js 버전이 많이 있더라구요,강사님이 선택하신 버전 이외 것을 연결하면 화면이 안뜨고 강사님 영상에 있는 r128 인가를 하면 뜨는데, 혹시 버전의 차이가 있을까요?최신버전이 아닌 많이 사용하는 버전인건지해서요,,,,
-
해결됨Three.js 3D 인터랙티브 바로 시작하기
이미지가 안나옵니다.
갤러리에서 아래 연결주소가 잘못된건지 이미지가 하나도 안나옵니다. const imageMap = new THREE.TextureLoader().load( "https://source.unsplash.com/collection/" + i );
-
해결됨떠먹는 Three.js
수업을 들으면서...
아직 초반부지만 열심히 듣고 있는데요,섹션3에서 각각의 명령어를 설명하시면서 직접 마우스로 움직이면서 하시더라구요강사님 설명을 들으면서 입력해보고는 있는데 그렇게 움직이면서는 확인이 안되어서요....따로 코딩을 더 넣어야 하는건지 아님 제가 놓친 부분이 있는지 해서요
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
소스코드 파일이 강의랑 같나요?
01_CDN 이라는 폴더가 소스코드 다운로드 받았을 때 아무리 찾아도 없습니다..
-
미해결Three.js 3D 인터랙티브 바로 시작하기
threejs 사이트 들어가면 선생님과 같은 코드가 안나옵니다ㅠ
코드를 복붙해보려해도, 현재는html과 js가 분리된 코드만 나오고,three.js파일은 사이트에서 다운로드한거 폴더 찾아봐도 없네요수업자료 주신 파일을 그냥 소스코드처럼 이용하면 되는건가요
-
미해결Three.js로 1인칭 3D 웹사이트 만들기
개발자도구에서 모바일 버전으로 테스트할때
사진처럼 터치를 하고 드래그를 하면 카메라가 돌아가는것이 아니라 웹 화면 자체가 끌려 가는데..html, canvas, body 에 touch-action 옵션을 none으로도 줘보고touch 이벤트들에 preventDefault도 줘보고 했지만 해결이 되질 않습니다.. 터치 드래그를 하면 moveMentX와 moveMentY의 값은 잘 출력되는데 카메라가 회전을 하지 않습니다.데스크탑에서 mousemove는 제대로 카메라가 돌아가는데, 모바일버전에서 touchmove는 카메라가 돌아가질 않네요.
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
materials 배열에 있는 top, bottom ... 들에 대해서
Box 지오메트리를 이용하였기 때문에 정육면체인데, materials 배열에 있는 여섯개의 원소들 순서가 정해져 있는걸까요?자동으로 frontTexture가 앞에 렌더링되고 rightTexture가 우측에 렌더링 되는걸까요??만약 Box가 아니라 sphere이라면 materials 배열엔 어떻게 다른 텍스쳐를 넣을 수 있을까요?또 예로 cone 지오메트리라면 material에 넣는 순서가 어떻게 될까요?
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
gltf 포맷 사용
안녕하세요 강의 너무 잘보고있습니다.https://inf.run/SELR1 여기보면 일단 gltf 사용을 추천하고있던데 glb는 하나의 파일에 모든게 담겨있는 형태라 관리가 용이하다고 나오더라구요. 서비스에서 사용하는 입장에서 둘중에 어느걸 사용하는게 성능면에서 좋은걸까요?
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
점프 애니메이션 stop
normal 유리판을 클릭했을 때, actions[0] 를 stop해서 default 모션은 삭제를 하지만 점프 모션은 계속 하더라구요. 사진처럼 점프도 삭제를 해야 정상적으로 작동이 되는데 혹시 강의에서는 따로 삭제를 안해도 점프모션이 반복되지 않는 이유가 뭘까요?!추가로 strong을 선택할때도 1초 후에는 다시 점프모션을 stop 해주었습니다.
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
사양에 따른 다른 결과
강의에서 사용하신 컴퓨터는 애플사 맥북이신거 같은데 저는 윈도우로 실습했습니다. 그래서인지 사실 기둥 세우고 바 설치하고부터 슬슬 렉이 심하게 걸리더라구요. 아무래도 사양이나 렌더링 능력치에 따라 다른 실습하시는 분들도 렉 걸리시거나 안걸리실텐데.. 그 이번 강의에서 일분이의 점프 동작을 구현할 때, gsap에서 y 값을 12로 설정하고 duration을 0.4초로 주셨잖아요? 똑같이 설정하고 실행했을 때, 1초보다 긴 체공시간을 갖고 떨어지더라구요. 근데 0.01초로 주어도 똑같이 체공하다가 떨어졌어요4초로 주었을 땐 정말 4초동안 체공하다가 떨어졌는데 이게 렉이 심해서 버벅여서 그렇게 보이는걸까요?! 쾌적한 환경에서 실습하지 못해서 아쉽긴 하지만 이러한 사양문제에 따라서 체공시간 같은 결과가 다르게 보일 수도 있을까요?
-
미해결React Three fiber(R3F)로 배우는 인터렉티브 3D 웹 개발
material 파트까지 들은 후 생긴 궁금증
안녕하세요 선생님. material까지 강의를 들으면서 두 가지 궁금한 점이 생겼습니다. 로컬 서버에서 ctrl+s 하면 자동으로 핫로딩되어 코드 변경사항이 화면에 반영되는 것으로 알고 있습니다. (리액트의 경우는 root부터 리렌더링) 그런데 핫로딩을 했을 때 바로 반영되는 코드가 있고, 직접 브라우저에서 새로고침해줘야 반영되는 코드가 있었습니다. <핫로딩 시 안변함 (only 새로고침으로만 변경사항 반영됨)> material wireframe 적용camera fov, far 속성그 외 등등 <핫로딩 시 변함> Geometry 종류 변경 transform 속성 변경 (position, scale, rotation)mesh color 변경materal 종류 변경그 외 등등 위와 같은 차이가 발생하는 이유를 잘 모르겠습니다. 내부 동작면에서 뭔가 다른게 있는 걸까요? (three.js 코드를 까보면 좀 명확해지려나요...) Mesh의 정의를 어떻게 내려야할지 잘 모르겠습니다. 아래 두 가지 중 어느 쪽이 더 맞는 설명일까요?Geometry와 material을 감싼 껍데기 Geometry와 material로 이루어진 하나의 물체 또, 종종 3D 모델링에서 정육면체, 삼각형 등을 오브젝트라고 부르는 걸 들은 적 있는 것 같은데, 해당 오브젝트라는 명칭이 맞는 명칭인가요? 그렇다면, Mesh = 오브젝트 라고 부를 수 있을까요? 감사합니다.
-
미해결React Three fiber(R3F)로 배우는 인터렉티브 3D 웹 개발
zoom과 fov의 차이점이 잘 이해가 안됩니다.
섹션3- 3D 구성요소 알아보기 강의 에서 설명주신것중 강의에서는 fov와 zoom의 수치를 감소시키거나 증가시켰을때, 선이라고 해야하나요? Cam이 찍고있는 좁아지고 넓어지는 그 선의 범위가 fov와 zoom이 같은 것 같아서 헷갈립니다!혹시 어떤 차이가 있는지 알려주실 수 있으실까요?
-
해결됨React Three fiber(R3F)로 배우는 인터렉티브 3D 웹 개발
1강 관련하여 의견을 여쭙고 싶은 게 있습니다.
안녕하세요 선생님. 무료보기 시청 후 바로 결제해서 달리고 있습니다. 하루 1강씩 뚫어보려고 합니다 😋 다름이아니라 DOM, SVG, Canvas를 비교해서 설명해주신 부분에서 의견을 여쭙고 싶은 내용이 있었습니다. Canvas의 2D Context보다 3D Context(WebGL)가 더 빠른 이유 이전에 2D Context를 공부하면서, 3D Context는 하드웨어 가속이 가능하기 때문에 더 빠르다는 글을 읽은 적이 있었습니다. 그런데 렌더링 자체는 Canvas 2D도 하드웨어 가속으로 처리되는 걸로 알고 있어서요. (간단한 작업은 CPU에서 처리한다는 글도 읽은 적 있었는데 어느 쪽이 맞는 말인지 사실 잘 모르겠습니다...) 아래 두 가지 중 어느 쪽이 WebGL Context가 2D Context보다 더 빠른 이유에 더 적합할까요?2D Context는 일부 CPU에서 렌더링하기도 하지만, WebGL은 전부 GPU에서 렌더링한다.WebGL은 셰이더를 GPU에서 실행시키기 때문에 2D Context보다 CPU 처리량이 적다.수많은 개체를 애니메이션 할 때 더 적합한 쪽 : WebGL API vs DOM(or SVG) + transform 속성 DOM 계산은 기본적으로 비용이 많이 발생하니, 수많은 개체를 '렌더링' 할 때에는 WebGL이 훨씬 유리할 것 같았는데, 위치를 옮긴다던가, 크기를 변경하는 애니메이션을 적용할 때에는 강사님께서는 WebGL과 transform 속성 중 어느 쪽을 더 선호하시나요? WebGL도 transform 속성도 레이아웃 재계산을 발생시키지 않지만, 전자는 JS로 조작해야하고, 후자는 조작은 css로 하지만 브라우저 레이어를 활용하는 것으로 알고 있어서요. 어느 쪽이 더 효율적일까요...?강의 중 보여주신 아래 그림에서, SVG의 사각형과 텍스트만 테두리가 좀 흐리게 보이고 있는데 이런 현상이 왜 발생하는걸까요? 이론 적으로는 SVG가 가장 깔끔해야할 것 같은데 픽셀이 깨질 정도로 확대하지 않는 이상은 SVG 쪽이 더 흐릿하게 보이는 것 같아 여쭤봅니다. 사실 강의도 강의지만, 평소에 고민하던 것을 여쭤본 것이기도 해서 가볍게 답변해주시더라도 너무 감사할 것 같습니다. 힘내서 완강해보겠습니다..! 감사합니다.
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
중복 질문 삭제
비슷한 질문 답변 올라온 게 있네요
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
혹시 이 빛의 범위를 조절할 수 있는 방법이 있나요?
사진처럼 DirectionalLight의 위치를 z: 10, y: 5로 주어 위치하였는데요. 도미노 중간부분이 오히려 어떤 무언가에 가려진 듯 어둡고, 끝 부분에는 가려진게 없는 듯이 밝습니다. 혹시 Light에 near, far 같은 옵션이 있어서 그런건지 아니면 위에 무언가가 가리고 있는건지 잘 모르겠습니다 하하..
-
미해결떠먹는 Three.js
roughness이 안 먹혀요 ㅜ
Material 수업강의 중2:44초에 roughness이 안먹힙니다..빛반사가 안되는데 확인 부탁드려요 ㅜ <script async src="https://ga.jspm.io/npm:es-module-shims@2.0.10/dist/es-module-shims.js"></script> <script type="importmap"> { "imports":{ "three" : "https://cdn.jsdelivr.net/npm/three@0.174.0/build/three.module.js", "three/addons/": "https://cdn.jsdelivr.net/npm/three@0.174.0/examples/jsm/" } } import * as THREE from "three"; const $result = document.querySelector("#result"); // 1. Scene : 화면에서 보여주려는 객체를 담는 공간 const scene = new THREE.Scene(); // scene.add(요소) scene.background = new THREE.Color(0xffe287); // 2. Camera : 신을 바라볼 시점을 결정 const camera = new THREE.PerspectiveCamera(50, window.innerWidth / window.innerHeight, 0.1, 1000); camera.position.set(2, 2, 2); camera.lookAt(0, 0, 0); // 3. Renderer : Scene+Camera, 화면을 그려주는 역할 const renderer = new THREE.WebGLRenderer({ canvas: $result, antialias: true }); renderer.setSize(window.innerWidth, window.innerHeight); // console.log(renderer); // document.body.appendChild(renderer.domElement) const light = new THREE.DirectionalLight(0xffffff); light.position.set(2, 4, 3); scene.add(light); const geometry = new THREE.BoxGeometry(1, 1, 1) const basic = new THREE.MeshBasicMaterial({ color: 0x2e6ff2, // wireframe: true, transparent: true, opacity: 0.5 }); // 가장 일반적으로 사용 됨. const standard = new THREE.MeshStandardMaterial({ color: 0xffaaaa, roughness: 0.2, }); const mesh = new THREE.Mesh(geometry, standard); scene.add(mesh); function animate() { // box.rotation.y += 0.01; // box.rotation.x += 0.01; // console.log(box.rotation.y); renderer.render(scene, camera); requestAnimationFrame(animate); } animate(); // 반응형을 위한 함수 window.addEventListener("resize", () => { // 1. 카메라의 종횡비 camera.aspect = window.innerWidth / window.innerHeight; camera.updateProjectionMatrix(); //카메라 업데이트 // 2. renderer의 크기 renderer.setSize(window.innerWidth, window.innerHeight); });
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
gltf.scene.children 이 없는데도 모델이 화면에 떠요
ilbuniMesh를 위 사진과 같이gltf.scene.children[0]으로 정의하였는데,console.log(gltf)를 해보면 따로 children이 없는데도 정상적으로 출력됩니다. 또한 gltf.scene.children[0]가 아닌gltf.scenes[0].children[0] 으로 해도 정상적으로 출력되는데 혹시 어떤 차이점이 있는건지도 답변이 가능할까요?? 저 또한 블렌더에서 Object만 선택한 후 export 하면 애니메이션 오류가 뜨고 (uuid) Object와 뼈대를 같이 선택한 후에 export 해야 정상적으로 출력됩니다 ㅠㅠ