๐ช Three w/ GIS DEVELOPER
Preface
๐ ๊ฐ๋ฐ ๊ณต๋ถ 6๊ฐ์ ์ฐจ์ธ to-be ๊ฐ๋ฐ์์ ์์ต ๋ธ๋ก๊ทธ๐๏พ JAN 16 ~ 22, 2022
ํ์ฌ ์ํ
๋งจ๋ "๊ถ๊ธํ๋ค, ํด๋ณด๊ณ ์ถ๋ค, ์ธ์ ๊ฐ ํด์ผ์ง" ํ์ง ๋ง๊ณ ํ ๋ฒ ๋์ ํด ๋ณธ ์ฐ๋ฆฌ์ ์ด์์ค!!
Three
Three.js์ ๊ธฐ๋ณธ ๊ตฌ์ฑ ์์
์ถ์ฒ : GIS DEVELOPER
Installation
- VS Code ๋ฑ editor ํ์
- Three.js homepage์์ 'download' click
- VS Code ์ผ์ชฝ menu ์ค 'Run and Debug' ์ ํ ํ 'Create launch.json' click
- browser ์ ํ
- (Run โ Start Debugging)
- web server ('live server ๋ฑ') ์ค์น ํ ์คํ
Geometry
์ ์
BufferGeometry class๋ฅผ ํตํด ์ ์๋๋ค.
3์ฐจ์ ๊ฐ์ฒด์ ํ์ ๋ฑ์ ์ ์ํ๋ค.
Material๊ณผ ํจ๊ป Mesh๋ฅผ ๊ตฌ์ฑํ๋ ์์์ด๋ค.
์ข ๋ฅ
-
(์์)
Geometry(โ ์ธ์1, โก ์ธ์2, โข ์ธ์3, ..., โ ์ธ์N)
: OO ๋ชจ์ -
BoxGeometry(โ ๊ฐ๋ก, โก ์ธ๋ก, โข ๊น์ด, โฃ ๊ฐ๋ก ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โค ์ธ๋ก ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โฅ ๊น์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์)
: ์ก๋ฉด์ฒด ๋ชจ์
ย ย ย ย โ ๊ฐ๋ก (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โก ์ธ๋ก (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โข ๊น์ด (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โฃ ๊ฐ๋ก ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โค ์ธ๋ก ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โฅ ๊น์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1) -
CircleGeometry(โ ๋ฐ์ง๋ฆ, โก ๋ถํ ๊ฐ์, โข ์์ ๊ฐ๋, โฃ ์ฐ์ฅ ๊ฐ๋)
: ์ํ ๋ชจ์
ย ย ย ย โ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โก ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 8) (์์น๊ฐ ๋์ ์๋ก ์์ ๊ฐ๊น์ด ๋ชจ์์ด ๋จ)
ย ย ย ย โข ์์ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 0)
ย ย ย ย โฃ ์ฐ์ฅ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 2pi) -
ConeGeometry(โ ๋ฐ๋ฉด ์์ ๋ฐ์ง๋ฆ, โก ์๋ฟ์ ๋์ด, โข ๋๋ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โฃ ๋์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โค ๋ฐ๋ฉด ๊ฐ๋ฐฉ ์ฌ๋ถ, โฅ ์์ ๊ฐ๋, โฆ ์ฐ์ฅ ๊ฐ๋)
: ์๋ฟ ๋ชจ์
ย ย ย ย โ ๋ฐ๋ฉด ์์ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โก ์๋ฟ์ ๋์ด (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โข ๋๋ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 8) (์์น๊ฐ ๋์ ์๋ก ๋ฐ๋ฉด์ด ์์ ๊ฐ๊น์ด ๋ชจ์์ด ๋จ)
ย ย ย ย โฃ ๋์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1) (์์น๊ฐ ๋์ ์๋ก ์ ๋ฉด์ ์ธต์ด ์๊น)
ย ย ย ย โค ๋ฐ๋ฉด ๊ฐ๋ฐฉ ์ฌ๋ถ (๊ธฐ๋ณธ ๊ฐ : false)
ย ย ย ย โฅ ์์ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 0)
ย ย ย ย โฆ ์ฐ์ฅ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 2pi) -
CylinderGeometry(โ ๋ฐ๋ฉด์ ๋ฐ์ง๋ฆ, โก ์๋ฉด์ ๋ฐ์ง๋ฆ, โข ์ํต์ ๋์ด, โฃ ๋๋ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โค ๋์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โฅ ๋ฐ๋ฉด ๋ฐ ์๋ฉด ๊ฐ๋ฐฉ ์ฌ๋ถ, โฆ ์์ ๊ฐ๋, โง ์ฐ์ฅ ๊ฐ๋)
: ์ํต ๋ชจ์
ย ย ย ย โ ๋ฐ๋ฉด์ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โก ์๋ฉด์ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โข ์ํต์ ๋์ด (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โฃ ๋๋ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 8) (์์น๊ฐ ๋์ ์๋ก ๋ฐ๋ฉด์ด ์์ ๊ฐ๊น์ด ๋ชจ์์ด ๋จ)
ย ย ย ย โค ๋์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1) (์์น๊ฐ ๋์ ์๋ก ์ ๋ฉด์ ์ธต์ด ์๊น)
ย ย ย ย โฅ ๋ฐ๋ฉด ๋ฐ ์๋ฉด ๊ฐ๋ฐฉ ์ฌ๋ถ (๊ธฐ๋ณธ ๊ฐ : false)
ย ย ย ย โฆ ์์ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 0)
ย ย ย ย โง ์ฐ์ฅ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 2pi) -
SphereGeometry(โ ๋ฐ์ง๋ฆ, โก ์ํ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โข ์์ง ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โฃ ์ํ ๋ฐฉํฅ์ ๋ํ ์์ ๊ฐ๋, โค ์ํ ๋ฐฉํฅ์ ๋ํ ์ฐ์ฅ ๊ฐ๋, โฅ ์์ง ๋ฐฉํฅ์ ๋ํ ์์ ๊ฐ๋, โฆ ์์ง ๋ฐฉํฅ์ ๋ํ ์ฐ์ฅ ๊ฐ๋)
: ๊ตฌ ๋ชจ์
ย ย ย ย โ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โก ์ํ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 32) (์์น๋ฅผ ๋ฎ์ถ๋ฉด ๊ฐ์ด ์๊น)
ย ย ย ย โข ์์ง ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 16)
ย ย ย ย โฃ ์ํ ๋ฐฉํฅ์ ๋ํ ์์ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 0)
ย ย ย ย โค ์ํ ๋ฐฉํฅ์ ๋ํ ์ฐ์ฅ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 2pi)
ย ย ย ย โฅ ์์ง ๋ฐฉํฅ์ ๋ํ ์์ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 0)
ย ย ย ย โฆ ์์ง ๋ฐฉํฅ์ ๋ํ ์ฐ์ฅ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : pi) -
RingGeometry(โ ๋ด๋ถ ๋ฐ์ง๋ฆ, โก ์ธ๋ถ ๋ฐ์ง๋ฆ, โข ๊ฐ์ฅ์๋ฆฌ ๋๋ ๋ฐฉํฅ์ผ๋ก์ ๋ถํ ๊ฐ์, โฃ ๋ด๋ถ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โค ์์ ๊ฐ๋, โฅ ์ฐ์ฅ ๊ฐ๋)
: 2์ฐจ์ ๋ฐ์ง ๋ชจ์ (camera ์กฐ๋ฆฌ๊ฐ์ฒ๋ผ ์๊น)
ย ย ย ย โ ๋ด๋ถ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 0.5)
ย ย ย ย โก ์ธ๋ถ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โข ๊ฐ์ฅ์๋ฆฌ ๋๋ ๋ฐฉํฅ์ผ๋ก์ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 8)
ย ย ย ย โฃ ๋ด๋ถ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โค ์์ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 0)
ย ย ย ย โฅ ์ฐ์ฅ ๊ฐ๋ (๊ธฐ๋ณธ ๊ฐ : 2pi) -
PlaneGeometryโ ๋๋น, โก ๋์ด, โข ๋๋น ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โฃ ๋์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์)
: 2์ฐจ์ ์ฌ๊ฐํ ๋ชจ์ (์ง๋ฆฌ ์ ๋ณด system์ธ GIS์์ 3์ฐจ์ ์งํ ๋ฑ์ ํํํ๋ ๋ฐ์ ์ฐ์)
ย ย ย ย โ ๋๋น (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โก ๋์ด (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โข ๋๋น ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โฃ ๋์ด ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 1) -
TorusGeometryโ ๋ฐ์ง๋ฆ, โก ์์ชฝ ๋ฐ์ง๋ฆ(?), โข ๋ฐฉ์ฌ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์, โฃ ์ํต์ ๋ํ ๋ถํ ๊ฐ์, โค ์ฐ์ฅ ๊ฐ๋์ ๊ธธ์ด)
: 2์ฐจ์ ๋ฐ์ง ๋ชจ์
ย ย ย ย โ ๋ฐ์ง๋ฆ (๊ธฐ๋ณธ ๊ฐ : 1)
ย ย ย ย โก ์์ชฝ ๋ฐ์ง๋ฆ(?) (๊ธฐ๋ณธ ๊ฐ : 0.4)
ย ย ย ย โข ๋ฐฉ์ฌ ๋ฐฉํฅ์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 8)
ย ย ย ย โฃ ์ํต์ ๋ํ ๋ถํ ๊ฐ์ (๊ธฐ๋ณธ ๊ฐ : 6) (์์น๊ฐ ๋์ ์๋ก ๊ฐ์ด ์๋ ๊ณก๋ฉด์ด ๋จ)
ย ย ย ย โค ์ฐ์ฅ ๊ฐ๋์ ๊ธธ์ด (๊ธฐ๋ณธ ๊ฐ : 2pi) -
TorusKnotGeometry(โ ์ธ์1, โก ์ธ์2, โข ์ธ์3, โฃ ์ธ์4, โค ์ธ์5)
: ๋ฐฐ๋ฐฐ ๊ผฌ์ฌ์์... (ํ์ฉ๋๊ฐ ๋ฎ์์ ์ค๋ช ์๋ต)
โป ๋ชจ๋ '์์ ๊ฐ๋'์ '์ฐ์ฅ ๊ฐ๋'์ ๊ฐ๋
์ CircleGeometry
์ '์์ ๊ฐ๋' ๋ฐ '์ฐ์ฅ ๊ฐ๋'์ ๋์ผ
// ์์
const geometry = new THREE.BoxGeometry(1, 1, 1);
const geometry = new THREE.CircleGeometry(0.9, 16, Math.PI/2, Math.PI);
Material
์ ์
3์ฐจ์ ๊ฐ์ฒด์ ์์ฒด๋ ํฌ๋ช
๋ ๋ฑ์ ์ ์ํ๋ค.
Geometry์ ํจ๊ป Mesh๋ฅผ ๊ตฌ์ฑํ๋ ์์์ด๋ค.
ํน์ง
๋ชจ๋ ์ฌ์ง์ Material class๋ฅผ ์์๋ฐ๋๋ค. (๋ชจ๋ ์ฌ์ง์ Material class์ ์์ฑ์ ์ฌ์ฉํ ์ ์๋ค.)
e.g. visible
, transparent
, opacity
, depthTest
, depthWrite
, side
...
์ฌ์ง์ ์์ ์ ์์ฑ ๊ฐ ๋ณํ์ ์ธ๋ถ ๊ด์์ ์ํฅ์ ๋ฏผ๊ฐํ๊ฒ ๋ฐ์ํ๋ค.
์ข ๋ฅ
- Mesh
- MeshBasicMaterial
- MeshLambertMaterial
- MeshPhongMaterial
- PBR (Physically Based Rendering)
- MeshStandardMaterial
- MeshPhysicalMaterial
- Line
- LineBasicMaterial
- LineDashedMaterial
- Points
- PointsMaterial
Mesh material์์ texture๋ฅผ ํํํ๊ธฐ ์ํ ์์ฑ
- map
- map
- alphaMap
- aoMap
- displacementMap
- lightMap
- metalnessMap
- normalMap
- roughnessMap
- minmap
- texture
- repeat.x, repeat.y
- wrapS, wrapT
- offset.x, offset.y
- rotation
- center.x, center.y
- magfilter, minfilter
Mesh (Object3D)
์ ์
Mesh, Line, Position ๋ฑ์ ํ์ class๋ก 3์ฐจ์ ๊ฐ์ฒด๋ฅผ ํ๋ฉด์ ํ์ํ๋ค.
position
, rotation
, scale
์ด๋ผ๋ ์์ฑ์ ๊ฐ์ง๋ฉฐ ์ด๋ 4X4 ํฌ๊ธฐ์ ํ๋ ฌ ์ ๋ณด๋ก ๋ณํ๋๋ค.
Object3D์ ํ์ class
- Mesh : ์ผ๊ฐํ ๋ฉด์ผ๋ก ๊ตฌ์ฑ๋ ๊ฐ์ฒด๋ฅผ ํํ
- x, y, x (๊ธฐ๋ณธ ๊ฐ : 0)
- Line : ์ ํ ๊ฐ์ฒด๋ฅผ ํํ
- Line
- LineLoop
- x, y, x (๊ธฐ๋ณธ ๊ฐ : 0)
- Points : ์ ์ ํํ
- x, y, x (๊ธฐ๋ณธ ๊ฐ : 1)
์์ฑ
position
: ์์น- x, y, x (๊ธฐ๋ณธ ๊ฐ : 0)
rotation
: ํ์ - x, y, x (๊ธฐ๋ณธ ๊ฐ : 0)
scale
: ํฌ๊ธฐ- x, y, x (๊ธฐ๋ณธ ๊ฐ : 1) (1์ ์๋ ํฌ๊ธฐ, 2๋ ๋ ๋ฐฐ...)
Scene Graph
์ ์
3์ฐจ์ ๊ณต๊ฐ ์์ ์ฅ๋ฉด ๊ตฌ์ฑ์ผ๋ก์ 3์ฐจ์ ๊ฐ์ฒด๋ฅผ ๊ณต๊ฐ ์์ ๊ตฌ์ฑํ๋ ๊ฒ์ scene graph๋ฅผ code๋ก ์์ฑํ๋ ๊ฒ์ด๋ค.
๊ฐ์ฒด ์ด๋ฆ, ๊ฐ์ฒด ํ์, ๋ถ๋ชจ - ์์ ๊ด๊ณ๋ฅผ ๋ํ๋ก ๋ํ๋ธ ํ code๋ก ์ฎ๊ธด๋ค.
(์์๊ฐ js file ์ ์ฒด๋ผ ๋ชป ์ฎ๊ธฐ๊ฒ ์...!)
Custom Geometry
- position
- normal
- color
- uv
- vertex index
Light
light class๋ฅผ ์์ ๋ฐ๋ ์ฌ์ฏ ๊ฐ์ ๊ด์ class๊ฐ ์๋ค.
์์์์๋ ๊ด์์ ํ๋์ฉ ์ฌ์ฉํ์ง๋ง ์ค์ ๋ก๋ ๋ณด๋ค ๋์ rendering ๊ฒฐ๊ณผ๋ฅผ ์ํด ์ฌ๋ฌ ์ข
๋ฅ์ ๊ด์์ ์ค์นํ์ฌ ์ฌ์ฉํ๋ค.
- ํ๊ฒฝ๊ด ํน์ ์ฃผ๋ณ๊ด
THREE.AmbientLight(๋น์ ์์, ๋น์ ์ธ๊ธฐ)
- ๋น์ ์์๊ณผ ๋น์ ์ธ๊ธฐ๋ฅผ ์ธ์๋ก ๋ฐ์
- ๋จ์ํ scene์ ์กด์ฌํ๋ ๋ชจ๋ ๋ฌผ์ฒด์ ๋ํด ๋จ์ผ ์์์ผ๋ก renderingํ๋๋ก ํจ
- ์ธ๊ธฐ๋ฅผ ๋ง์ด ๋ฎ์ถ์ด ๊ด์์ ์ํฅ์ ๋ฐ์ง ๋ชปํ๋ ๋ฌผ์ฒด๋ ์ด์ง ๋ณด์ฌ์ง๊ฒ ํ๋ ๋ฐ์ ์ฌ์ฉ
THREE.HemisphereLight(์์์ ๋น์น๋ ๋น์ ์์, ์๋์์ ๋น์น๋ ๋น์ ์์, ๋น์ ์ธ๊ธฐ)
- ๋น์ ์์ ๋ ๊ฐ์ง์ ๋น์ ์ธ๊ธฐ๋ฅผ ์ธ์๋ก ๋ฐ์
- ๋ฐฉํฅ์ฑ์ ๊ฐ์ง๋ ๊ด
THREE.DirectionalLight(๋น์ ์์, ๋น์ ์ธ๊ธฐ)
- ํ์์ฒ๋ผ ๋น๊ณผ ๋ฌผ์ฒด ๊ฐ์ ๊ฑฐ๋ฆฌ์ ์๊ด์์ด ๋์ผํ ๋น์ ํจ๊ณผ๋ฅผ ์ค
- ๊ทธ๋ ๊ธฐ ๋๋ฌธ์ ์ด ๋น์ position๊ณผ target ์์ฑ์ position์ผ๋ก ๊ฒฐ์ ๋๋ ๋ฐฉํฅ๋ง์ด ์๋ฏธ๊ฐ ์์
THREE.PointLight(๋น์ ์์, ๋น์ ์ธ๊ธฐ)
- ๋น์ ์์ ๋ ๊ฐ์ง์ ๋น์ ์ธ๊ธฐ๋ฅผ ์ธ์๋ก ๋ฐ์
- ๋น์ด ๊ด์ ์์น์์ ์ฌ๋ฐฉ์ผ๋ก ํผ์ ธ๋๊ฐ
light.distance
์์๋ฅผ ํตํด ์ง์ ๋ ๊ฑฐ๋ฆฌ๊น์ง๋ง ๊ด์์ ์ํฅ์ด ๋ฏธ์นจ
THREE.SpotLight(๋น์ ์์, ๋น์ ์ธ๊ธฐ)
- ๋น์ ์์ ๋ ๊ฐ์ง์ ๋น์ ์ธ๊ธฐ๋ฅผ ์ธ์๋ก ๋ฐ์
light.penumbra
์์๋ฅผ ํตํด ๋น์ ๊ฐ์๋ฅผ ์กฐ์
THREE.RectAreaLight(๋น์ ์์, ๋น์ ์ธ๊ธฐ, ๊ด์์ ๊ฐ๋ก ํฌ๊ธฐ, ๊ด์์ ์ธ๋ก ํฌ๊ธฐ)
- ๋น์ ์์, ๋น์ ์ธ๊ธฐ, ๊ด์์ ๊ฐ๋ก ๋ฐ ์ธ๋ก ํฌ๊ธฐ๋ฅผ ์ธ์๋ก ๋ฐ์
- ๋ง์น ํ๊ด๋ฑ์ด๋ ์ฐฝ๋ฌธ์์ ๋ค์ด์ค๋ ๊ด์
- ๋ ๊ฐ์ import code ํ์
- ์ด์ ์๋ ๊ด์์ ๋ฐฉํฅ์ ๋์์ ์์น๋ก ์ง์ ํ๋ ๊ฒ๊ณผ ๋ค๋ฅด๊ฒ ๊ฐ๋๋ก ์ง์ ํจ
Camera
Object3D class๋ฅผ ์์๋ฐ๋ Camera class์ ๋ ๊ฐ์ง ๊ธฐ๋ณธ์ ์ธ camera๊ฐ ์๋ค.
THREE.PerspectiveCamera(fovy, aspect, zNear, zFar)
- ๊ฐ๊น์ด ์๋ ๋ฌผ์ฒด๊ฐ ๋ฉ๋ฆฌ ์๋ ๋ฌผ์ฒด๋ณด๋ค ์๋์ ์ผ๋ก ํฌ๊ฒ ๋ณด์ด๋๋ก ์๊ทผ๊ฐ์ ํํํด์ rendering
- fovy : ์ ๋์ฒด์ ๋์ด ๋ฐฉํฅ์ ๋ํ ๊ฐ๋ (๋จ์ : degree)
- aspect : ์ ๋์ฒด์ ๊ฐ๋ก ๊ธธ์ด๋ฅผ ์ธ๋ก ๊ธธ์ด๋ก ๋๋ ๋น์จ
- zNear, zFar : camera๋ก๋ถํฐ์ ๊ฑฐ๋ฆฌ์ด๋ฉฐ, ์ด ์์ญ์ ๋ฌผ์ฒด๋ง rendering๋จ
THREE.OrthographicCamera(xLeft, xRight, yTop, yBottom, zNear, zFar)
- ๋ฌผ์ฒด ๊ฐ์ ๊ฑฐ๋ฆฌ๊ฐ (์๊ทผ๊ฐ) ์์ด ๋ฌผ์ฒด์ ํฌ๊ธฐ๋๋ก rendering
- DOM ์์์ ํฌ๊ธฐ์ ๋ฐ๋ผ xLeft, xRight์ ๊ฐ์ด ์ง์ ๋๋ฏ๋ก DOM ์์์ ํฌ๊ธฐ๊ฐ ๋ณ๊ฒฝ๋๋ฉด camera์ xLeft์ xRight ๊ฐ๋ ๋ณ๊ฒฝํด ์ฃผ์ด์ผ ํจ
Shadow
Three.js์์ ๊ทธ๋ฆผ์๋ฅผ ์ ๊ณตํ๋ ๊ด์์ THREE.PointLight
, THREE.PointLight
, THREE.SpotLight
์ด๋ค.
๊ทธ๋ฆผ์๋ฅผ renderingํ๊ธฐ ์ํด ๊ฐ์ฒด์ ์ธ ๊ฐ์ง๋ฅผ ์ค์ ํด์ผ ํ๋ค.
- renderer
- ๊ด์
- ๊ทธ๋ฆผ์๋ฅผ ์ง์ํ๋ ๊ด์์ ๋ชจ๋ shadow๋ผ๋ ์์ฑ์ ๊ฐ๊ณ , ์ด shadow ์์ฑ์๋ camera ์์ฑ์ด ์กด์ฌํ๋๋ฐ, ์ด camera๊ฐ ๊ทธ๋ฆผ์์ ๋ํ texture image๋ฅผ ์์ํ๊ธฐ ์ํด ์ฌ์ฉ๋จ
- model
Endnote
๐ related documents
๐ the source of this content
Author And Source
์ด ๋ฌธ์ ์ ๊ดํ์ฌ(๐ช Three w/ GIS DEVELOPER), ์ฐ๋ฆฌ๋ ์ด๊ณณ์์ ๋ ๋ง์ ์๋ฃ๋ฅผ ๋ฐ๊ฒฌํ๊ณ ๋งํฌ๋ฅผ ํด๋ฆญํ์ฌ ๋ณด์๋ค https://velog.io/@maimade/three02์ ์ ๊ท์: ์์์ ์ ๋ณด๊ฐ ์์์ URL์ ํฌํจ๋์ด ์์ผ๋ฉฐ ์ ์๊ถ์ ์์์ ์์ ์ ๋๋ค.
์ฐ์ํ ๊ฐ๋ฐ์ ์ฝํ ์ธ ๋ฐ๊ฒฌ์ ์ ๋ (Collection and Share based on the CC Protocol.)
์ข์ ์นํ์ด์ง ์ฆ๊ฒจ์ฐพ๊ธฐ
๊ฐ๋ฐ์ ์ฐ์ ์ฌ์ดํธ ์์ง
๊ฐ๋ฐ์๊ฐ ์์์ผ ํ ํ์ ์ฌ์ดํธ 100์ ์ถ์ฒ ์ฐ๋ฆฌ๋ ๋น์ ์ ์ํด 100๊ฐ์ ์์ฃผ ์ฌ์ฉํ๋ ๊ฐ๋ฐ์ ํ์ต ์ฌ์ดํธ๋ฅผ ์ ๋ฆฌํ์ต๋๋ค