시스템에 대한 환경설정 파일 위치를 파악하기 위한 SQL
SHOW hba_file;

공간정보시스템 / 3차원 시각화 / 딥러닝 기반 기술 연구소 @지오서비스(GEOSERVICE)
시스템에 대한 환경설정 파일 위치를 파악하기 위한 SQL
SHOW hba_file;
R3F는 다음처럼 설치될 수 있습니다.
npm install three@0.148 @react-three/fiber@8.9
또는
npm install three @react-three/fiber
시작점이 되는 index.jsx 코드 예는 다음과 같습니다.
import { Canvas } from "@react-three/fiber"
import MyThree from './MyThree'
const root = createRoot(document.querySelector('#root'))
root.render(
)
MyThree는 컴포넌트인데, 코드는 다음과 같습니다.
import { extend, useFrame, useThree } from "@react-three/fiber"
import { useRef } from "react"
import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"
extend({ OrbitControls })
export default function MyThree() {
const cubeRef = useRef()
useFrame((state, delta) => {
cubeRef.current.rotation.y += delta
})
const { camera, gl } = useThree()
return <>
</>
}
큐브 회전에 대한 애니메이션 처리와 OrbitControls가 적용된 코드입니다. 물론 drei를 사용하면 더욱 간단히 OrbitControls를 적용할 수 있습니다.
프론트엔드 단 개발에서 밥 먹듯 사용하는 데이터 요청 코드입니다.
import { useState, useEffect } from "react"
export default function People() {
const [ people, setPeople ] = useState([])
useEffect(() => {
fetch("https://jsonplaceholder.typicode.com/users")
.then(response => response.json())
.then(result => setPeople(result))
}, [])
return <div>
<h2>People</h2>
<ul>{ people.map((person, index) => <li key={person.id}>{person.name}</li>) }</ul>
</div>
}
위의 코드도 좋지만, 다음 코드가 더욱 좋습니다.
import { useState, useEffect } from "react"
export default function People() {
const [ people, setPeople ] = useState([])
useEffect(() => {
const getPeople = async () => {
const response = await fetch("https://jsonplaceholder.typicode.com/users")
const result = await response.json()
setPeople(result)
}
getPeople()
}, [])
return <div>
<h2>People</h2>
<ul>{ people.map((person, index) => <li key={person.id}>{person.name}</li>) }</ul>
</div>
}
systemctl stop nginx
systemctl start nginx

왼쪽은 반사 재질이고 오른쪽은 굴절 재질인데.. 각각의 재질은 다음과 같습니다.
const cubeMaterial1 = new THREE.MeshStandardMaterial({ color: 0xffffff, envMap: textureCube, metalness: 1, roughness: 0 });
const cubeMaterial2 = new THREE.MeshPhongMaterial({ color: 0xccfffd, envMap: textureCube, refractionRatio: 0.985, /* reflectivity: 0.9 */ });
재질의 refractionRatio와 reflectivity 속성은 MeshPhongMaterial에서만 사용할 수 있다는 점에 주의할 것.