본문으로
AssetKitSTUDIO
3D STUDIO VIEWPORT · r186
트리거 분무병
GLB · sRGB Neutral ToneMapping드래그: 회전 · 스크롤: 줌 · 우클릭: 이동

에셋 상세 설명

손잡이 트리거와 노즐이 있는 분무병입니다. AssetKit이 만든 자체 모델이며 mininter-free로 제공합니다.

지오메트리 / 구조
2D Raster
배포 포맷
GLB Standard
패키지 용량
387 KB
권장 엔진
Blender · Unity · UE5

이 에셋을 만들 때 쓰는 프롬프트

손잡이 트리거가 달린 분무병. 병, 노즐, 트리거, 빨대를 구분한다. 반투명 플라스틱과 유색 노즐. 실물 분무기 크기. glTF Binary, Y-up, 미터 단위. 폴리곤을 줄이지 않은 하이 모델을 낸다.

three.js r186 코드

import * as THREE from "three";
import { GLTFLoader } from "three/addons/loaders/GLTFLoader.js";
import { OrbitControls } from "three/addons/controls/OrbitControls.js";
import { RoomEnvironment } from "three/addons/environments/RoomEnvironment.js";

const glbUrl = "https://assetkit-cdn.min-inter.co.kr/originals/gen_spray-bottle_trigger_v1/v1/download/gen_spray-bottle_trigger_v1.glb";
const renderer = new THREE.WebGLRenderer({ antialias: true });
renderer.outputColorSpace = THREE.SRGBColorSpace;
renderer.toneMapping = THREE.NeutralToneMapping;
renderer.toneMappingExposure = 1;
renderer.shadowMap.enabled = true;
renderer.shadowMap.type = THREE.PCFSoftShadowMap;
renderer.setPixelRatio(Math.min(window.devicePixelRatio || 1, 2));
document.body.append(renderer.domElement);

const scene = new THREE.Scene();
const pmrem = new THREE.PMREMGenerator(renderer);
scene.environment = pmrem.fromScene(new RoomEnvironment(), 0.04).texture;

const camera = new THREE.PerspectiveCamera(38, window.innerWidth / window.innerHeight, 0.01, 200);
camera.position.set(1.6, 1.1, 2.2);
const controls = new OrbitControls(camera, renderer.domElement);
controls.target.set(0, 0.4, 0);

const key = new THREE.DirectionalLight(0xfffaf0, 2.2);
key.position.set(2.8, 4.2, 2.6);
key.castShadow = true;
scene.add(key);
const fill = new THREE.DirectionalLight(0x90a8ff, 0.85);
fill.position.set(-3, 2, 1.5);
scene.add(fill);
const rim = new THREE.DirectionalLight(0xc4b5fd, 1.15);
rim.position.set(0, 2.4, -3.2);
scene.add(rim);

const loader = new GLTFLoader();
loader.setCrossOrigin("anonymous");
loader.load(glbUrl, (gltf) => {
  scene.add(gltf.scene);
});

function resize() {
  camera.aspect = window.innerWidth / window.innerHeight;
  camera.updateProjectionMatrix();
  renderer.setSize(window.innerWidth, window.innerHeight);
}
resize();
window.addEventListener("resize", resize);
renderer.setAnimationLoop(() => {
  controls.update();
  renderer.render(scene, camera);
});

함께 쓰기 좋은 연관 에셋

동일한 프로젝트 씬에 조합하기 좋은 추천 에셋입니다.

더 찾아보기