세 가지 구름 효과.js
오스틴 메르
@아마르
신투자조합!마침내 프로젝트, 아이, 수면 사이에서 이 일을 완성할 시간을 찾았다.👇 austinmayer.co
2019년 2월 21일 오후 19:16
이 사이트에 더 많은 내용이 있기 때문에, 나는 점운의 초기본 버전을 실현하기로 결정했다.세 개.js는 점 구름을 신속하게 만들 수 있는 함수를 제공합니다.
메쉬 대신 점
하나의 격자 (3d 대상) 는 세 부분으로 나뉜다.js는 기하학적, 재료로 구성되어 있다.그러나 전체 메쉬를 표시하기보다는 정점만 표시합니다. Points
반은 3반으로 나뉜다.js는 '완전한' 대상이 아닌 기하학적 도형과 표시점을 사용할 수 있습니다. PointsMaterial
를 사용하여 점의 크기를 조절할 수 있습니다.점 클라우드 그리드의 코드는 다음과 같습니다.
let geometry = new THREE.TorusGeometry(10, 3, 16, 100)
let material = new THREE.PointsMaterial({ color: 0xFFFFFF, size: 0.25 })
mesh = new THREE.Points(geometry, material)
scene.add(mesh)
전체 코드에 대해 클릭/예시를 누르고'코드'옵션 카드에 서명하십시오main.js
!
3D 모델 사용
let geometry = new THREE.TorusGeometry(10, 3, 16, 100)
let material = new THREE.PointsMaterial({ color: 0xFFFFFF, size: 0.25 })
mesh = new THREE.Points(geometry, material)
scene.add(mesh)
에서는 3D 모델을 세 번 로드할 수 있습니다.하지만 너는 반드시 약간의 추가 업무에 투입해야 한다.3D 모델 형식에 따라 마스터 라이브러리 외에 로더를 로드해야 합니다.나는 사용하는 것을 좋아한다.obj는 나 자신을 위해 모형을 만들었기 때문에 나 개인이 필요로 한다OBJLoader
HTML 태그를 통해 라이브러리를 불러오면 세 개의 태그와 함께 단독 스크립트를 불러올 수 있는 추가 태그를 추가해야 합니다.js 다운로드.이 스크립트는 examples/js/loaders/OBJLoader.js
에서 찾을 수 있습니다
폴더 불러오는 것을 포함하면 다음과 같습니다:
<script src="three/examples/js/loaders/OBJLoader.js"></script>
npm를 사용하면 jsm 폴더를 통해 마운트 프로그램을 가져올 수 있습니다.만약 당신이 필요한 문법을 좋아한다면, js 폴더를 계속 사용하십시오!가져오기 문장은 다음과 같습니다:
//import syntax
import { OBJLoader } from 'three/examples/jsm/loaders/OBJLoader.js'
//require syntax, require adds OBJLoader directly to THREE
require('three/examples/js/loaders/OBJLoader.js')
마운트의 작업 방식은 약속하지 않은 확장 "가져오기"와 같습니다.모델을 포함하는 파일의 URL을 삽입하면 불러오는 프로그램이 http 요청을 실행합니다.성공적인 요청, 진행 중인 요청 및 실패한 요청에 대한 콜백을 제공합니다
결과의 첫 번째 하위 형상을 선택하면 로드 대상의 형상을 획득할 수 있습니다
const loader = new THREE.OBJLoader()
loader.load('https://cdn.glitch.com/fcf3c007-b4eb-4250-ba6b-653fdab94ce3%2Fjapanese_temple.obj?1558792651869',
(obj) => {
// the request was successfull
let material = new THREE.PointsMaterial({ color: 0xFFFFFF, size: 0.25 })
mesh = new THREE.Points(obj.children[0].geometry, material)
mesh.position.y = -15 //this model is not exactly in the middle by default so I moved it myself
scene.add(mesh)
},
(xhr) => {
// the request is in progress
console.log(xhr)
},
(err) => {
// something went wrong
console.error("loading .obj went wrong, ", err)
})
소면책 성명: 3D 모델은 3D 모델링 소프트웨어에서 구축할 수 있다. 예를 들어 Autodesk Maya3D와 Blender, 그리고 기하학적 및 수정기 등이다.만약 모델의 상당 부분을 수정기로 만들었다면, 점 구름을 적용할 때, 점은 네가 볼 수 있는 대상의 방식으로 나타나지 않을 것이다.이것이 바로 당신이 이 목적에 전문적으로 사용하고 싶은 3D 모형을 항상 테스트하는 이유입니다
A little control
상호작용은 항상 일을 더욱 재미있게 할 수 있다.오스틴 메야 사이트의 정지와 변형 효과는 노력과 시간을 들여 만들어야 한다.그러나three는 최소한 사용자가 사용할 수 있는OrbitControls
모바일 카메라를 빠르게 추가할 수 있는 기능을 갖추고 있다.3D 모델 로더와 마찬가지로 컨트롤도 로딩해야 하는 확장자입니다.궤도 제어는 examples/js/controls/OrbitControls.js
에 위치하거나 가져오는 문법examples/jsm/controls/OrbitControls.js
을 사용합니다.코드가 약간 이렇게 보입니다:
camera = new THREE.PerspectiveCamera(75, window.innerWidth / window.innerHeight, 0.1, 1000)
camera.position.z = 40
const controls = new THREE.OrbitControls(camera)
controls.enableZoom = false //zoom happens on scroll which can be quite annoying
나는 이것이 세 가지 상황에서 점운을 만드는 데 도움이 되기를 바란다.js
Credits
나는 나의 가장 친한 친구인 점잖은 사람으로부터 정신적인 지지를 많이 받았고, 그도 한 사이트를 제출하여 시합에 참가했다.나는 많은 의문이 있는데, 내가 어떤 물건을 제출해야 할지 확실하지 않다.나는 그가 나를 설득해서 매우 기쁘다. 왜냐하면 우리는 올해 겨울에 상해에 있을 것이다🎉. 만약 네가 더 많은 것을 알고 싶다면, 그는 얼마 전에
문장을 한 편 썼다Reference
이 문제에 관하여(세 가지 구름 효과.js), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/maniflames/pointcloud-effect-in-three-js-3eic텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)