Three.js: WebGL2λ Œλ”λŸ¬

에 λ§Œλ“  2016λ…„ 10μ›” 29일  Β·  84μ½”λ©˜νŠΈ  Β·  좜처: mrdoob/three.js

이번 μ£Ό 에 Chrome은 WebGL 2.0을 μΆœμ‹œν•  κ³„νšμ„ λ°œν‘œ ν–ˆμœΌλ―€λ‘œ 이제 지원을 μΆ”κ°€ν•  λ•Œκ°€ 된 것 κ°™μŠ΅λ‹ˆλ‹€!

일뢀 μƒˆλ‘œμš΄ κΈ°λŠ₯에 λŒ€ν•΄ WebGLRenderer 에 λŒ€ν•œ 지원을 μΆ”κ°€ν•˜λŠ” 일뢀 PR이 μžˆμ§€λ§Œ μ–΄μ¨Œλ“  WebGLRenderer κ°€ webgl λ₯Ό λͺ¨λ‘ μ§€μ›ν•˜λ„λ‘ ν•˜λŠ” 것은 쒋은 생각이 μ•„λ‹ˆλΌκ³  μƒκ°ν•©λ‹ˆλ‹€. 및 webgl2 .

WebGL2Renderer μ—κ²Œ μΈμ‚¬ν•˜μ„Έμš”! https://github.com/mrdoob/three.js/commit/2ff9d410753b72a5e43b211dc3be26f0f0ab8a0e πŸ‘‹

μƒˆλ‘œμš΄ λ Œλ”λŸ¬λŠ” μˆ˜λ§Žμ€ 쑰건문을 ꡬ할 뿐만 μ•„λ‹ˆλΌ 정리할 κΈ°νšŒλ„ 쀄 κ²ƒμž…λ‹ˆλ‹€. BufferGeometry 만 μ§€μ›ν•˜λŠ” 것뢀터 μ‹œμž‘ν•©λ‹ˆλ‹€ ✌️

제 λ§μ„€μž„μœΌλ‘œ 인해 PR이 ν†΅ν•©λ˜μ§€ λͺ»ν•œ λͺ¨λ“  λΆ„λ“€κ»˜ μ£„μ†‘ν•©λ‹ˆλ‹€! πŸ˜”

Enhancement WebGL2

κ°€μž₯ μœ μš©ν•œ λŒ“κΈ€

λ‹€μŒ 주에 이 λͺ¨λ“  것을 μ‘°μ‚¬ν•˜κΈ° μ‹œμž‘ν•  κ³„νšμž…λ‹ˆλ‹€! ✌️

λͺ¨λ“  84 λŒ“κΈ€

μ•„μ£Ό μ’‹μ•„. :) 사싀 WebGL 2와 1의 λ³΅μž‘μ„±μ„ μ²˜λ¦¬ν•˜λŠ” 방법에 λŒ€ν•΄ μ•½κ°„ κ±±μ •ν–ˆμŠ΅λ‹ˆλ‹€.

UBOλ₯Ό μ‚¬μš©ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. :) 그리고 BufferGeometry만 μ§€μ›ν•˜λŠ” 아이디어가 λ§ˆμŒμ— λ“­λ‹ˆλ‹€. μ΄λŠ” μž‘μ—…μ„ μ—„μ²­λ‚˜κ²Œ λ‹¨μˆœν™”ν•΄μ•Ό ν•©λ‹ˆλ‹€.

ν¬μ›Œλ“œ λ Œλ”λ§μ„ κ³ μˆ˜ν•œλ‹€λ©΄ λŒ€λΆ€λΆ„ λ™μΌν•œ 셰이더λ₯Ό μ§€μ›ν•˜λŠ” 것이 λ©‹μ§ˆ κ²ƒμž…λ‹ˆλ‹€. μ–΄λ–»κ²Œ 생각해?

WebGL2λ₯Ό μ‚¬μš©ν•  수 μ—†λŠ” 경우 λΉ„μŠ·ν•˜μ§€λ§Œ 더 느린 κ²ƒμœΌλ‘œ λŒ€μ²΄ν•  수 μžˆλ„λ‘ 셰이더 ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜κ³  μ‹ΆμŠ΅λ‹ˆλ‹€.

@mrdoob 엉덩이 λ§Œμ„Έ! 그리고 BufferGeometry κ°€ λ…μ μ μœΌλ‘œ μ‚¬μš©λœλ‹€λŠ” μ†Œμ‹μ„ λ“£κ²Œ λ˜μ–΄ κΈ°μ©λ‹ˆλ‹€. πŸ‘

λ‚˜λŠ” UBOλ₯Ό μ„ ν˜Έν•œλ‹€λŠ” @bhouston 의 μ œμ•ˆμ„ 두 번째둜 ν•©λ‹ˆλ‹€.

λ Œλ”λŸ¬μ—μ„œ μ‘°λͺ…κ³Ό 그림자 처리λ₯Ό μ™„μ „νžˆ 뢄리할 μˆ˜λ„ μžˆμŠ΅λ‹ˆκΉŒ? 기본값은 정말 νŽΈλ¦¬ν•˜μ§€λ§Œ μ‘°λͺ… 및 그림자 논리λ₯Ό μ™„λ²½ν•˜κ²Œ μ œμ–΄ν•˜λ €λ©΄ WebGLRenderer 및 co. 그듀이 μ‹Έμš΄ κ²ƒμ²˜λŸΌ λŠκ»΄μ§‘λ‹ˆλ‹€.

그리고 λ‚΄κ°€ μœ„μ‹œλ¦¬μŠ€νŠΈ y μœ ν˜• ν•­λͺ©μ„ λ‚˜μ—΄ν•˜λŠ” λ™μ•ˆ μ •λ ¬ μ•Œκ³ λ¦¬μ¦˜μ„ 'ν”ŒλŸ¬κ·Έ κ°€λŠ₯'ν•˜κ²Œ λ§Œλ“€ 수 μžˆμŠ΅λ‹ˆκΉŒ? μ„Έ 가지 λ²”μœ„λ₯Ό λ²—μ–΄λ‚œ μ •λ ¬ μš”κ΅¬ 사항이 있으며 ν˜„μž¬ WebGLRenderer μ—μ„œ μ •λ ¬ κΈ°λŠ₯을 μž¬μ •μ˜ν•˜λŠ” 것이 λΆˆν•„μš”ν•˜κ²Œ μ–΄λ €μš΄ 것 κ°™μŠ΅λ‹ˆλ‹€. μ•„λ§ˆλ„ 이것은 λ Œλ”λŸ¬ 객체λ₯Ό 생성할 λ•Œ 선택적 섀정이 될 수 μžˆμŠ΅λ‹ˆκΉŒ?

WebGLRenderer 1을 μˆ˜μ •ν•˜κ³  BufferGeometry 개체λ₯Ό μ œμ™Έν•œ λͺ¨λ“  지원을 μ œκ±°ν•΄μ•Ό ν•˜λŠ”μ§€ 거의 κΆκΈˆν•©λ‹ˆλ‹€. 그것은 μ•žμœΌλ‘œ 더 μ‰¬μš΄ 방법일 수 μžˆμŠ΅λ‹ˆλ‹€. Geometryλ₯Ό BufferGeometry둜 λ³€ν™˜ν•˜λŠ” κ°„λ‹¨ν•œ κΈ°λŠ₯이 있으면 κ°•μ œλ‘œ ν˜ΈμΆœν•˜κ²Œ λ©λ‹ˆλ‹€...

WebGLRenderer와 WebGLRenderer2 κ°„μ˜ κΈ°λŠ₯ νŒ¨λ¦¬ν‹°λ₯Ό μœ μ§€ν•˜λ €κ³  ν•˜κΈ° λ•Œλ¬Έμ— 이 말을 ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. 두 개λ₯Ό λ³‘λ ¬λ‘œ μœ μ§€ν•˜λŠ” 것보닀 단일 μ½”λ“œ κΈ°λ°˜μ„ λ°œμ „μ‹œν‚€λŠ” 것이 더 μ‰½μŠ΅λ‹ˆλ‹€.

WebGLRenderer 1을 μˆ˜μ •ν•˜κ³  BufferGeometry 개체λ₯Ό μ œμ™Έν•œ λͺ¨λ“  지원을 μ œκ±°ν•΄μ•Ό ν•˜λŠ”μ§€ 거의 κΆκΈˆν•©λ‹ˆλ‹€. 그것은 μ•žμœΌλ‘œ 더 μ‰¬μš΄ 방법일 수 μžˆμŠ΅λ‹ˆλ‹€. Geometryλ₯Ό BufferGeometry둜 λ³€ν™˜ν•˜λŠ” κ°„λ‹¨ν•œ κΈ°λŠ₯이 있으면 κ°•μ œλ‘œ ν˜ΈμΆœν•˜κ²Œ λ©λ‹ˆλ‹€...

이미 그런 κΈ°λŠ₯이 μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ·Έλ ‡κ²Œ κ°„λ‹¨ν•˜μ§€κ°€ μ•Šλ‹€...

API와 μ§€μ›λ˜λŠ” κΈ°λŠ₯을 μž¬κ³ ν•  수 μžˆλ„λ‘ WebGLRenderer2 λ₯Ό μ²˜μŒλΆ€ν„° λΉŒλ“œν•˜λŠ” 것이 더 λ‚«λ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

Firefox 51은 이제 WebGL 2λ₯Ό μ§€μ›ν•©λ‹ˆλ‹€. https://www.mozilla.org/en-US/firefox/51.0/releasenotes/

기닀릴 수 μ—†μ–΄!

WebGL 2.0을 μ§€μ›ν•˜λŠ” Chrome 56이 μΆœμ‹œλ˜μ—ˆμŠ΅λ‹ˆλ‹€!
https://developers.google.com/web/updates/2017/01/nic56

WebGLRenderer2 을(λ₯Ό) μ•žμœΌλ‘œ μ΄λ™ν•˜κΈ°μ— 쒋은 μ‹œκ°„μž…λ‹ˆκΉŒ? XD

WebGLDeferredRenderer2도 생성해야 ν•©λ‹ˆκΉŒ?

λ‹€μŒ 주에 이 λͺ¨λ“  것을 μ‘°μ‚¬ν•˜κΈ° μ‹œμž‘ν•  κ³„νšμž…λ‹ˆλ‹€! ✌️

당신은 이미 그것을 쑰사할 μ‹œκ°„μ΄ μžˆμ—ˆμ„ κ°€λŠ₯성이 μžˆμŠ΅λ‹ˆλ‹€! 쏘우 κΈ°λŒ€λ©λ‹ˆλ‹€! (3D ν…μŠ€μ²˜)

@mrdoob
μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?
μš°λ €λ˜λŠ” 사항이 있으면 κ³΅μœ ν•΄ μ£Όμ„Έμš”!
μƒλ‹΄ν•˜κ³  λ„μ™€λ“œλ¦¬κ² μŠ΅λ‹ˆλ‹€ ;D

아직 μ‹œκ°„μ΄ μ—†μ—ˆμŠ΅λ‹ˆλ‹€. 곧 곧! πŸ˜‡

μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ? μ €λŠ” 특히 일뢀 의료 이미지λ₯Ό λ³Όλ₯¨ λ Œλ”λ§ν•˜κΈ° μœ„ν•œ 3D ν…μŠ€μ²˜μ— 관심이 μžˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” λ˜ν•œ 이 pull requestκ°€ μ„±κ³΅ν•˜λ„λ‘ λ„μšΈ 의ν–₯이 μžˆμŠ΅λ‹ˆλ‹€.

ν˜„μž¬ three.js webgl2 μƒŒλ“œλ°•μŠ€κ°€ μž‘λ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€ :( https://threejs.org/examples/webgl2_sandbox.html
three.js 버전 λΉŒλ“œ 문제일 수 μžˆμŠ΅λ‹ˆκΉŒ?

온라인 <script type="module"> 이 이미 κ΅¬ν˜„λœ 경우...
https://groups.google.com/a/chromium.org/d/msg/blink-dev/uba6pMr-jec/tXdg6YYPBAAJ

적어도 MozillaλŠ” https://bugzilla.mozilla.org/show_bug.cgi?id=1240072 μ—μ„œ μž‘μ—… μ€‘μž…λ‹ˆλ‹€.

@mrdoob , 이것은 WebGL 2.0으둜 μ—…λ°μ΄νŠΈλ  λ•Œ Three.js APIκ°€ <script type="module"> λ₯Ό ν™œμš©ν•  수 μžˆλ‹€λŠ” 것을 μ˜λ―Έν•©λ‹ˆκΉŒ? ;)

BTW λ‚˜λŠ” WebGLRenderer에 WebGL 2.0 지원을 μΆ”κ°€ν•˜λŠ” 것이 κ·Έ λ™μ•ˆ κ°€μž₯ 쉽닀고 μƒκ°ν•©λ‹ˆλ‹€. 이것은 점진적인 채택을 ν—ˆμš©ν•˜κ³  WebGL 2 κΈ°λŠ₯을 μ‚¬μš©ν•  수 μžˆλŠ”μ§€ ν™•μΈν•˜κΈ° μœ„ν•΄ κΈ°λŠ₯ 감지λ₯Ό μˆ˜ν–‰ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. κ°€μž₯ μ–΄λ €μš΄ 일이 μ•„λ‹Œκ°€ μ‹ΆμŠ΅λ‹ˆλ‹€. μˆœμˆ˜ν•œ WebGL 2 λ Œλ”λŸ¬μ™€ λŒ€μ‘°μ μœΌλ‘œ μ•½κ°„μ˜ λ³΅μž‘μ„±μ„ μ΄ˆλž˜ν•œλ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ, μ΄λŠ” 쀑μž₯기적으둜 κ°€μž₯ μ‰¬μš΄ λ°©λ²•μž…λ‹ˆλ‹€. 그리고 WebGL 2κ°€ 90% 이상 μ±„νƒλ˜λ©΄ κ²°κ΅­ WebGL 1을 λ‚¨κ²¨λ‘λŠ” κ³³μ—μ„œ 천천히 μ§„ν™”ν•©λ‹ˆλ‹€.

KhronosλŠ” webgl2에 λŒ€ν•œ μ›Ή μ„Έλ―Έλ‚˜λ₯Ό κ°€μ‘ŒμŠ΅λ‹ˆλ‹€:
https://docs.google.com/presentation/d/11-mTDNmSJzJnRVGu9Vu6AUzOt34yV3PO7oqw4E5wc2o/edit#slide =id.gd15060520_0_38
λ―Έλ””μ–΄λŠ” 곧 λ‚˜μ˜¬ κ²ƒμ΄μ§€λ§Œ ν”„λ ˆμ  ν…Œμ΄μ…˜μ€ 주둜 μŠ¬λΌμ΄λ“œμ˜ μŒμ„± ν•΄μ„€κ³Ό μŠ¬λΌμ΄λ“œμ˜ κ΄€λ ¨ 데λͺ¨μ˜€μŠ΅λ‹ˆλ‹€.

이λ₯Ό μœ„ν•΄μ„œλŠ” κΈ°μ‘΄ WebGLRendererμ—μ„œ "μ—…λ°μ΄νŠΈ"ν•˜λŠ” 것이 μ•„λ‹ˆλΌ μƒˆλ‘œμš΄ μ‹œμž‘μ΄ ν•„μš”ν•©λ‹ˆλ‹€.

es6 λͺ¨λ“ˆκ³Ό κ΄€λ ¨ν•˜μ—¬ ν˜„μž¬ μ†ŒμŠ€μ˜ μ ‘κ·Ό 방식은 es6 λͺ¨λ“ˆμ΄λ©° λ²ˆλ“€μ— 둀업을 μ‚¬μš©ν•˜λŠ” 것이 μ—¬μ „νžˆ "이쀑 λΉŒλ“œ"λ₯Ό μ§€μ›ν•˜λŠ” 방법이라고 μƒκ°ν•©λ‹ˆλ‹€.

μ €λŠ” 일주일 정도 이 μž‘μ—…μ„ μˆ˜ν–‰ν–ˆμœΌλ©° Safari Tech Previewμ—μ„œ λͺ¨λ“ˆμ„ ν…ŒμŠ€νŠΈν•˜κ³  λͺ¨λ“  λΈŒλΌμš°μ €μ—μ„œ λ²ˆλ“€μ„ ν…ŒμŠ€νŠΈν–ˆμŠ΅λ‹ˆλ‹€. μ‹€μ œλ‘œλŠ” ν˜„μž¬ λ²ˆλ“€λΏλ§Œ μ•„λ‹ˆλΌ μ†ŒμŠ€ νŠΈλ¦¬λ„ λΉŒλ“œ/가지고 μžˆμŠ΅λ‹ˆλ‹€. ν˜„μž¬ 가지고 μžˆλŠ” ν•œ μ€„μ§œλ¦¬ λ‘€μ—…κ³Ό λͺ¨λ“ˆμš© μ†ŒμŠ€ 트리 사본.

@buston 유혹...

μ΅œμ‹  μƒνƒœ?

λ‚˜λŠ” 이것에 λŒ€ν•΄ 어쩐지 만감이 κ΅μ°¨ν•œλ‹€. μ²˜μŒμ—λŠ” @bhouston이 μ œμ•ˆν•œ 것과 λ™μΌν•œ κ²½λ‘œμ— λŒ€ν•΄ μƒκ°ν•˜κ³  μžˆμ—ˆκ³  ν˜„μž¬ WebGLRenderer 에 webgl2 κΈ°λŠ₯을 μ μ§„μ μœΌλ‘œ μΆ”κ°€ν•˜λ €κ³  ν–ˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ 그것은 λ Œλ”λŸ¬λ₯Ό 더 λ³΅μž‘ν•˜κ³  두 버전 μ‚¬μ΄μ—μ„œ κ°€μž₯ λ‹€λ₯Έ κΈ°λŠ₯을 닀루기 μ–΄λ ΅κ²Œ λ§Œλ“€κ³  κ²°κ΅­ 뢄기와 쑰건 κ²€μ‚¬λ‘œ 가득 μ°¬ μ§€μ €λΆ„ν•œ μ½”λ“œλ‘œ λλ‚©λ‹ˆλ‹€.
ν•œ 가지 μ˜΅μ…˜μ€ $# WebGL2Renderer 의 μ‹œμž‘μ μœΌλ‘œ WebGLRenderer λ₯Ό λ³΅μ œν•˜κ³  μ›λž˜ λ Œλ”λŸ¬λ₯Ό λ§μΉ˜μ§€ μ•Šκ³  κΈ°λŠ₯을 계속 제거/μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
κ°€μž₯ μ΄ˆκΈ°μ— webgl2λ₯Ό μ§€μ›ν•˜λŠ” Playcanvas와 같은 엔진을 μ‚΄νŽ΄λ³΄λ©΄ UBO λ˜λŠ” VAO와 같은 μƒˆλ‘œμš΄ webgl2 κΈ°λŠ₯을 ν™œμš©ν•˜μ§€λ„ μ•ŠλŠ” 것을 μ•Œ 수 μžˆμŠ΅λ‹ˆλ‹€. μ—”μ§„μ˜ λ§Žμ€ λΆ€λΆ„.

λ™μΌν•œ λ Œλ”λŸ¬μ—μ„œ 두 버전을 ν˜Όν•©ν•˜λ €κ³  ν•˜λ©΄ μ½”λ“œλ₯Ό μœ μ§€ κ΄€λ¦¬ν•˜κΈ°κ°€ 더 μ–΄λ €μ›Œμ§ˆ 것이며 webgl2κ°€ μ™„μ „νžˆ μ§€μ›λ˜λŠ” μ¦‰μ‹œ μš°λ¦¬λŠ” 이것을 λ¦¬νŒ©ν† λ§ν•΄μ•Ό ν•  것이라고 ꡳ게 λ―ΏμŠ΅λ‹ˆλ‹€. webgl2λ₯Ό 염두에 두고 μ²˜μŒλΆ€ν„° λ””μžμΈν•˜λŠ” λŒ€μ‹  ν˜Έν™˜μ„±μ„ μœ μ§€ν•˜κΈ° μœ„ν•΄ λ””μžμΈμ„ 따라야 ν–ˆμŠ΅λ‹ˆλ‹€.

κ·Έλž˜μ„œ 제 νˆ¬ν‘œλŠ” 속도가 λŠλ €μ§€λ”λΌλ„ μ²˜μŒλΆ€ν„° WebGL2Renderer μ‹œμž‘ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€(webgl2κ°€ 100% 지원에 κ°€κΉŒμ›Œμ§ˆ λ•ŒκΉŒμ§€ μ—¬μ „νžˆ κ°œμ„ μ˜ 여지가 μžˆμŠ΅λ‹ˆλ‹€).

λ Œλ”λŸ¬ 자체 μ΄μ™Έμ˜ 일뢀 파일(예: ν…μŠ€μ²˜, ν”„λ‘œκ·Έλž¨ λ“±)은 μˆ˜μ •ν•΄μ•Ό ν•©λ‹ˆλ‹€. renderer\webgl2 ν•˜μœ„ 폴더λ₯Ό λ§Œλ“€κ³  ν•΄λ‹Ή λ Œλ”λŸ¬μš©μœΌλ‘œ νŠΉλ³„νžˆ 생성될 νŒŒμΌμ„ 계속 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

webgl2와 μ™„μ „νžˆ ν˜Έν™˜λ˜λŠ” λ Œλ”λŸ¬κ°€ λ Œλ”λŸ¬λ₯Ό μž‘μ„±ν•  λ•Œ 염두에 두도둝 ν•˜κΈ° μœ„ν•΄ μˆ˜ν–‰ν•΄μ•Ό ν•˜λŠ” λ³€κ²½ λͺ©λ‘κ³Ό κ΄€λ ¨λœ 문제λ₯Ό μƒμ„±ν•˜κ³  MVPκ°€ λ…Όμ˜μ— 집쀑할 수 μžˆλ„λ‘ ν•˜λŠ” κΈ°λŠ₯ λͺ©λ‘μ„ 생성할 μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€. 이 초기 μƒνƒœμ—μ„œ κ΅¬ν˜„μ— λŒ€ν•œ 더 κΉŠμ€ λŒ€ν™”λ₯Ό μ‹œμž‘ν•©λ‹ˆλ‹€.

κ°œλ°œμ— λŒ€ν•œ μ—…λ°μ΄νŠΈκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

아직 μ•„λ‹˜. 이번 λ‹¬μ—λŠ” WebVR에 μš°μ„ μˆœμœ„λ₯Ό λ‘μ—ˆμŠ΅λ‹ˆλ‹€.

μœ„μ˜ @fernandojsgκ°€ μ œμ•ˆν•œ λŒ€λ‘œ WebGL2 및 ES3 셰이더 μ–Έμ–΄λ‘œ λΉ λ₯Έ μΈν”Œλ ˆμ΄μŠ€ λ³€ν™˜μ„ μ‹œλ„ν–ˆμŠ΅λ‹ˆλ‹€. μ—¬κΈ° squashed diffκ°€ μžˆμŠ΅λ‹ˆλ‹€. https://github.com/tstanev/three.js/compare/master...tstanev :traian/webgl2 사싀, μ²˜μŒμ— μ˜ˆμƒν–ˆλ˜ κ²ƒλ§ŒνΌ λ‚˜μ˜μ§€λŠ” μ•ŠμŠ΅λ‹ˆλ‹€. μ „λž΅μ μœΌλ‘œ 배치된 ifdefλ₯Ό 톡해 두 가지 λͺ¨λ‘λ₯Ό μ§€μ›ν•˜λŠ” 것은 거의 보기 ν‰ν•˜μ§€ μ•Šμ€ 것 κ°™μŠ΅λ‹ˆλ‹€.
[νŽΈμ§‘: μ—…λ°μ΄νŠΈλœ λ§ν¬μž…λ‹ˆλ‹€.]

@tstanev μž‘μ—… μ˜ˆμ œκ°€ μžˆμŠ΅λ‹ˆκΉŒ?

μ—°κ²°λœ λΈŒλžœμΉ˜μ— λ²ˆλ“€λœ three.js μ˜ˆμ œκ°€ μž‘λ™ μ€‘μž…λ‹ˆλ‹€(diffμ—μ„œ λ³Ό 수 μžˆλ“―μ΄ 이전에 ν™•μž₯이 ν•„μš”ν•œ 예제λ₯Ό λ³€ν™˜ν–ˆμŠ΅λ‹ˆλ‹€). repo/branchλ₯Ό λ³΅μ œν•˜κ³  λ‘œμ»¬μ—μ„œ μ‹€ν–‰ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@tstanev webgl2 λ³€κ²½ 사항에 λŒ€ν•œ μ„±λŠ₯ 비ꡐλ₯Ό 온라인으둜 ν•˜λŠ” 것은 μ–΄λ–»μŠ΅λ‹ˆκΉŒ?) 보기 μ’‹μŠ΅λ‹ˆλ‹€. (webgl2의 three.js λŒ€ three.js)

μ•ˆλ…•
이 졜고의 아이디어에 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€.
λ‚΄ ν”„λ‘œκ·Έλž¨μ—μ„œ webgl2rendererλ₯Ό μ‚¬μš©ν•˜κ³  μ‹Άμ§€λ§Œ ν”„λ¦¬μ»΄νŒŒμΌ 버전(r86)μ—μ„œλŠ” μ‚¬μš©ν•  수 μ—†μ–΄ μ†ŒμŠ€λ₯Ό κ°€μ Έμ˜€κ³  three.js κ°€μ Έμ˜€κΈ°μ—μ„œ webgl2renderer의 주석을 μ œκ±°ν•œ λ‹€μŒ λΉŒλ“œν•©λ‹ˆλ‹€.
이제 λ‚΄ μ½”λ“œμ™€ 예제(webgl2-sandbox)κ°€ 였λ₯˜ 없이 μ‹€ν–‰λ˜μ§€λ§Œ 아무 것도 ν‘œμ‹œλ˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

νŽΈμ§‘: νŒŒμ΄μ–΄ν­μŠ€ 54와 크둬 60μ—μ„œ ν…ŒμŠ€νŠΈν–ˆμŠ΅λ‹ˆλ‹€.
bufferGeometry 및 ShaderMaterial을 μ‚¬μš©ν•˜λŠ” λ‚΄ μ˜ˆλŠ” webglrendererμ—μ„œ μ˜¬λ°”λ₯΄κ²Œ μž‘λ™ν•©λ‹ˆλ‹€.

아무도 λŒ€λ‹΅ν•˜μ§€ μ•Šμ•„? μ§€κΈˆ webgl2renderer의 λ¬Έμ œλŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

@MHA15 μ•„λ§ˆλ„ 아직 생산할 μ€€λΉ„κ°€ λ˜μ§€ μ•Šμ•˜κΈ° λ•Œλ¬Έμ— λΉŒλ“œμ— ν¬ν•¨λ˜μ§€ μ•Šμ•˜μ„ κ²ƒμž…λ‹ˆλ‹€.

μ—¬λŸ¬λΆ„, WebGL2Renderer κ°œλ°œμ€ μ–΄λ–»κ²Œ μ§„ν–‰λ˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?
μ²˜μŒλΆ€ν„° λ‹€μ‹œ λ§Œλ“€κΈ°λ‘œ κ²°μ •ν•œ κ²ƒμœΌλ‘œ μ•Œκ³  μžˆμŠ΅λ‹ˆλ‹€. ν•˜μ§€λ§Œ μ‹œκ°„μ΄ 많이 ν˜λ €κ³  이 주제λ₯Ό λ‹€μ‹œ λ§Œλ“œλŠ” 데 λ§Žμ€ μž‘μ—…μ΄ ν•„μš”ν•˜κΈ° λ•Œλ¬Έμ— 이 μ£Όμ œμ— λŒ€ν•œ 개발이 λ‹€μ†Œ λŠλ¦½λ‹ˆλ‹€.

이 μ‹œμ μ—μ„œ @mattdesl이 https://github.com/mrdoob/three.js/issues/8125 μ—μ„œ ν–ˆλ˜ κ²ƒμ²˜λŸΌ WebGLRenderer 의 λ³΅μ œλ³Έμ„ λ§Œλ“œλŠ” 것을 μž¬κ³ ν•˜κ³  WebGL2둜 λ³€κ²½ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? 그런 λ‹€μŒ @fernandojsg κ°€ λ§ν–ˆλ“―μ΄ UBO와 같은 λͺ‡ 가지 μƒˆλ‘œμš΄ κΈ°λŠ₯을 기반으둜 λ Œλ”λŸ¬λ₯Ό μˆ˜μ •ν•  수 μžˆμŠ΅λ‹ˆλ‹€. κ²°κ΅­ μš°λ¦¬λŠ” λͺ¨λ“  webgl 1 λ ˆκ±°μ‹œ μ½”λ“œλ₯Ό μ œκ±°ν•  κ²ƒμž…λ‹ˆλ‹€.

제 생각에 λ Œλ”λŸ¬λ₯Ό μ²˜μŒλΆ€ν„° μƒμ„±ν•˜λ €λ©΄ μ—„μ²­λ‚œ μ–‘μ˜ μž‘μ—…μ΄ ν•„μš”ν•˜λ©° μ΄μƒμ μœΌλ‘œλŠ” λͺ‡ λͺ…μ˜ κΈ°μ—¬μžλ§ŒμœΌλ‘œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€. 이 λŒ€ν™”λŠ” 1λ…„ 전에 μ‹œμž‘λ˜μ—ˆμŠ΅λ‹ˆλ‹€. 그리고 μ²˜μŒλΆ€ν„° λͺ‡ 달 λ™μ•ˆ ν’€νƒ€μž„μœΌλ‘œ ꡬ좕할 ꡬ세주가 μžˆλŠ” 지경에 이λ₯΄μ§€ μ•ŠλŠ” ν•œ 내년에도 같은 μž…μž₯이 될 것이라고 λ―ΏμŠ΅λ‹ˆλ‹€.

제 생각에 λ Œλ”λŸ¬λ₯Ό μ²˜μŒλΆ€ν„° μƒμ„±ν•˜λ €λ©΄ μ—„μ²­λ‚œ μ–‘μ˜ μž‘μ—…μ΄ ν•„μš”ν•˜λ©° μ΄μƒμ μœΌλ‘œλŠ” λͺ‡ λͺ…μ˜ κΈ°μ—¬μžλ§ŒμœΌλ‘œ μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

μ‚¬μ‹€μž…λ‹ˆλ‹€. ν•˜μ§€λ§Œ κ·ΈλŸΌμ—λ„ λΆˆκ΅¬ν•˜κ³  λͺ¨λ“  곳에 쑰건문을 μΆ”κ°€ν•˜μ—¬ WebGLRenderer λ₯Ό μœ μ§€ κ΄€λ¦¬ν•˜κΈ° μ–΄λ ΅κ²Œ λ§Œλ“œλŠ” 것보닀 쉽닀고 μƒκ°ν•©λ‹ˆλ‹€. μ €λŠ” μ§€λ‚œ 5λ…„μ˜ λŒ€λΆ€λΆ„μ„ WebGLRenderer λ₯Ό 읽고 μœ μ§€ κ΄€λ¦¬ν•˜κΈ° μ‰½κ²Œ λ§Œλ“œλŠ” 데 λ³΄λƒˆμŠ΅λ‹ˆλ‹€.

λ˜ν•œ @fernandojsg κ°€ μ•žμœΌλ‘œ λͺ‡ μ£Ό μ•ˆμ— 이λ₯Ό μ‹œλ„ν•  κ³„νšμ΄λΌκ³  μƒκ°ν•©λ‹ˆλ‹€.

λŒ€λ‹¨ν•΄. @fernandojsg의 멋진 μž‘μ—…μ„ κΈ°λŒ€ν•©λ‹ˆλ‹€!!

μΆ”μ‹ .. 컴퓨터 κ·Έλž˜ν”½μ˜ 지평을 λ„“ν˜€μ€€ 이 ν”„λ‘œμ νŠΈμ˜ λͺ¨λ“  κΈ°μ—¬μžμ—κ²Œ κ°μ‚¬ν•©λ‹ˆλ‹€. μ•žμœΌλ‘œ λͺ‡ 가지 사둀λ₯Ό μ œκ³΅ν•  수 있기λ₯Ό λ°”λžλ‹ˆλ‹€.

λ‚˜λŠ” ν˜„μž¬λ₯Ό μˆ˜μ •ν•˜λŠ” 것보닀 μƒˆλ‘œμš΄ λ Œλ”λŸ¬λ₯Ό μ²˜μŒλΆ€ν„° μƒˆλ‘œ λ§Œλ“œλŠ” 것이 더 μ‰¬μšΈ κ²ƒμ΄λΌλŠ” @mrdoob 의 μ˜κ²¬μ— λ™μ˜ν•©λ‹ˆλ‹€.
κ·Έκ°€ λ§ν–ˆλ“―μ΄, λ‚˜λŠ” λ‹€μŒ 주에 그것을 μ‹œλ„ν•˜κ³  μ‹Άμ—ˆμŠ΅λ‹ˆλ‹€. λ‚΄ μ ‘κ·Ό 방식은 ν™”λ©΄μ˜ κ°„λ‹¨ν•œ μƒμžμ— ν•„μš”ν•œ 것을 λ§Œλ“€κΈ° μ‹œμž‘ν•˜κ³  이미 μžˆλŠ” 것을 κ°€μ Έμ™€μ„œ λ¦¬νŒ©ν† λ§ν•˜λŠ” λŒ€μ‹  λ‹¨κ³„μ μœΌλ‘œ κΈ°λŠ₯을 계속 μΆ”κ°€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€.
예λ₯Ό λ“€μ–΄ WebGLRenderer 의 ν˜„μž¬ μƒνƒœλ₯Ό μ‚΄νŽ΄λ³΄μ‹­μ‹œμ˜€. 더 λͺ¨λ“ˆν™”λ˜κ³  μ‚¬μš©μž μ •μ˜ κ°€λŠ₯ν•˜λ„λ‘ λ§Œλ“œλŠ” 것에 λŒ€ν•œ λ§Žμ€ λ…Όμ˜κ°€ μžˆμ—ˆμ§€λ§Œ μ—¬μ „νžˆ λ‚΄λΆ€ μ½”λ“œκ°€ μ‹œκ°„μ΄ 지남에 따라 계속 κ°œμ„ λ˜λ”λΌλ„ μ™ΈλΆ€μ—μ„œλŠ” κ·Έλƒ₯ λΈ”λž™λ°•μŠ€.
μž‘μ—…μ΄ μ™„λ£Œλ˜λŠ” μ¦‰μ‹œ PR을 μ—΄μ–΄ λ‹€μŒ 단계에 λŒ€ν•΄ 계속 λ…Όμ˜ν•  수 μžˆλ„λ‘ ν•˜κ² μŠ΅λ‹ˆλ‹€.

5f889ce296aaf447ec5992a6df726691098a9110 8aab6e0382cd6ba8fd3fb943e7f65141bf3a50bc
webgl2_sandbox κ°€ λ‹€μ‹œ μž‘λ™ν•©λ‹ˆλ‹€(es6 λͺ¨λ“ˆμ΄ ν•„μš”ν•¨).

@mrdoob λ§ˆμŠ€ν„°/λ¦΄λ¦¬μŠ€μ—μ„œ μ–Έμ œ μ‚¬μš©ν•  수 μžˆλŠ”μ§€ λŒ€λž΅μ μΈ μ˜ˆμƒμ΄ μžˆμŠ΅λ‹ˆκΉŒ? :) λ‚˜λŠ” 그것이 μΌμ–΄λ‚˜κ³  μžˆλ‹€λŠ” 것을 기쁘게 μƒκ°ν•©λ‹ˆλ‹€! :)

@wdanilo λ³„λ‘œ... WebGL2의 μ–΄λ–€ κΈ°λŠ₯이 ν•„μš”ν•œκ°€μš”?

@mrdoob κ°€μž₯ 큰 κ°œμ„  사항은 Uniform Buffer Objects와 Sampler2DArrayμ—μ„œ λ‚˜μ˜΅λ‹ˆλ‹€. ν…μŠ€μ²˜ 배열은 μ•ŒνŒŒ 맡으둜 λ§ˆμŠ€ν‚Ήλœ μ—¬λŸ¬ 재료λ₯Ό λ ˆμ΄μ–΄λ§ν•˜λŠ” λ³΅μž‘ν•œ 셰이더λ₯Ό μ‚¬μš©ν•˜κ³  있기 λ•Œλ¬Έμ— ν…μŠ€μ²˜ λ‹¨μœ„ μ œν•œμ— 직면해 있기 λ•Œλ¬Έμ— ν˜„μž¬ ν”„λ‘œμ νŠΈμ— 맀우 μœ μš©ν•  κ²ƒμž…λ‹ˆλ‹€.

@mrdoob glsl μ—μ„œ flat 와 같은 μƒˆλ‘œμš΄ ν‚€μ›Œλ“œλ„ 맀우 μœ μš©ν•  κ²ƒμž…λ‹ˆλ‹€.

λ‚΄ ν”„λ‘œμ νŠΈμ—λŠ” 3D ν…μŠ€μ²˜κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

ν₯미둜운...
μ‚¬λžŒλ“€μ΄ WebGL 2.0을 ν•„μš”λ‘œ ν•˜λŠ” νŠΉμ •ν•œ 경우λ₯Ό μ•„λŠ” 데 맀우 μœ μš©ν•©λ‹ˆλ‹€.
계속 였게 ν•΄μ£Όμ„Έμš”!

3D ν…μŠ€μ²˜λ„ μš°λ¦¬μ—κ²Œ 큰 νŠΉμ§•μž…λ‹ˆλ‹€. μš°λ¦¬λŠ” λ˜ν•œ 일뢀 셰이더 κΈ°λŠ₯을 μ‚¬μš©ν•œλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.

λ•Œλ•Œλ‘œ λ‚˜λŠ” MRTλ₯Ό μ›ν•œλ‹€

μ—¬λŸ¬ λ Œλ” νƒ€κ²Ÿμ—λ„ +1

닀쀑 λ Œλ” νƒ€κ²Ÿμ€ 이미 ν™•μž₯을 톡해 WebGL1μ—μ„œ μ§€μ›λ˜λ©°, ThreeJS에 PR도 μžˆμŠ΅λ‹ˆλ‹€: https://github.com/mrdoob/three.js/pull/9358 ( demo ).

λ©€ν‹°μƒ˜ν”Œ λ Œλ” νƒ€κ²Ÿμ΄ μ œκ°€ κ°€μž₯ μ’‹μ•„ν•˜λŠ” κΈ°λŠ₯이라고 μƒκ°ν•©λ‹ˆλ‹€. λŒ€λΆ€λΆ„μ˜ ν΄λΌμ΄μ–ΈνŠΈλŠ” 사후 처리(λΈ”λ£Έ, LUT λ“±)λ₯Ό μš”μ²­ν•˜μ§€λ§Œ 사후 FXκ°€ κ΅¬ν˜„λ˜λ©΄ μ μ ˆν•œ 앀티앨리어싱이 μ—†λ‹€λŠ” 점에 μ‹€λ§ν•©λ‹ˆλ‹€. MSAA λ Œλ” νƒ€κ²Ÿμ„ μ‚¬μš©ν•˜λ©΄ λ§ˆμΉ¨λ‚΄ λ©‹μ§€κ²Œ μ•€ν‹° μ•¨λ¦¬μ–΄μ‹±λœ _및_ ν›„μ²˜λ¦¬λœ μž₯면을 κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ™μ˜ν•œλ‹€. 효과 μž‘μ„±κΈ°κ°€ μžˆλŠ” 사후 처리된 μž₯면의 μ•€ν‹° 앨리어싱을 μœ„ν•œ ν•΄κ²° 방법 μ…°μ΄λ”λŠ” μ§„μ •ν•œ μ•€ν‹° 앨리어싱에 μΆ©λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

그리기 ν”Όλ“œλ°±μ— λŒ€ν•΄ +1. μ•„λ‹ˆλ©΄ 이미 webgl1 ν™•μž₯으둜 μ§€μ›λ©λ‹ˆκΉŒ?
μ‚Ό?

2017λ…„ 12μ›” 14일 λͺ©μš”일 μ˜€ν›„ 9μ‹œ 45뢄에 Kyle [email protected] 이 λ‹€μŒκ³Ό 같이 μΌμŠ΅λ‹ˆλ‹€.

λ‚˜λŠ” λ™μ˜ν•œλ‹€. 사후 처리된 μž₯λ©΄μ—μ„œ μ•€ν‹° 앨리어싱을 μœ„ν•œ ν•΄κ²° 방법 셰이더
μ§„μ •ν•œ μ•ˆν‹° μ•¨λ¦¬μ–΄μ‹±μ—λŠ” 효과 μž‘μ„±κΈ°λ‘œ μΆ©λΆ„ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

β€”
당신이 λŒ“κΈ€μ„ λ‹¬μ•˜κΈ° λ•Œλ¬Έμ— 이것을 λ°›λŠ” κ²ƒμž…λ‹ˆλ‹€.
이 이메일에 직접 λ‹΅μž₯ν•˜κ³  GitHubμ—μ„œ ν™•μΈν•˜μ„Έμš”.
https://github.com/mrdoob/three.js/issues/9965#issuecomment-351815640 ,
λ˜λŠ” μŠ€λ ˆλ“œ μŒμ†Œκ±°
https://github.com/notifications/unsubscribe-auth/AHTX1RhYdGuTVSpmOy1ka-6gy1eslHQAks5tAXrFgaJpZM4Kj_9l
.

여기에 λͺ‡ 가지 μ‚¬μš© 사둀가 μžˆμŠ΅λ‹ˆλ‹€.

  1. MRTκ°€ ν•„μš”ν•©λ‹ˆλ‹€. ν˜„μž¬ λ™μΌν•œ 셰이더λ₯Ό 4~5회 λ Œλ”λ§ν•˜κ³  λ‹€λ₯Έ 버퍼λ₯Ό μ–»κΈ° μœ„ν•΄ 속성을 λ³€κ²½ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.
  2. 앀티앨리어싱을 μ‚¬μš©ν•˜μ—¬ ν…μŠ€μ²˜λ‘œ λ Œλ”λ§ν•˜λŠ” 것은 μš°λ¦¬μ—κ²Œ μ€‘μš”ν•œ κΈ°λŠ₯μž…λ‹ˆλ‹€. μ‹œκ°ν™” 미리보기가 ν¬ν•¨λœ "λ…Έλ“œ νŽΈμ§‘κΈ°"λ₯Ό λ§Œλ“­λ‹ˆλ‹€. 각 μ‹œκ°ν™”λŠ” μš°λ¦¬κ°€ 무언가λ₯Ό κ·Έλ¦¬λŠ” ν…μŠ€μ²˜μΌ 뿐이며 μ μ ˆν•œ 앀티앨리어싱이 μ—†λŠ” 것은 μ—¬κΈ°μ„œ κ³ ν†΅μŠ€λŸ½μŠ΅λ‹ˆλ‹€.
  3. "flat" ν‚€μ›Œλ“œ - 이제 float 속성을 μ‚¬μš©ν•˜μ—¬ κΈ°ν•˜ν•™μ„ μΈλ±μ‹±ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€. μ΄λŠ” λΆ„λͺ…νžˆ μ°¨μ„ μ±…μž…λ‹ˆλ‹€. uint둜 μΈλ±μ‹±ν•˜λŠ” 것보닀 더 λ‚˜μ©λ‹ˆλ‹€. 이 속성을 κΌ­μ§“μ μ—μ„œ ν”„λž˜κ·Έλ¨ΌνŠΈ μ…°μ΄λ”λ‘œ μ „λ‹¬ν•˜κ³  있으며 "flat" kwrd에 λŒ€ν•œ 지원이 λΆ€μ‘±ν•˜κΈ° λ•Œλ¬Έμ— μ§€κΈˆμ€ uintλ₯Ό μ‚¬μš©ν•  수 μ—†μŠ΅λ‹ˆλ‹€.
  4. (μž‘κ²Œ) 3D ν…μŠ€μ²˜λŠ” κ°€κΉŒμš΄ μž₯λž˜μ— μ§€μ›ν•˜κ³ μž ν•˜λŠ” κ³ κΈ‰ μ‹œκ°ν™”μ— μ ν•©ν•©λ‹ˆλ‹€.

μ•€ν‹° 앨리어싱과 ν›„μ²˜λ¦¬λ₯Ό ν•¨κ»˜ μ‚¬μš©ν•˜λŠ” 것이 κ°€μž₯ μ€‘μš”ν•©λ‹ˆλ‹€.

@mrdoob λ‚΄ μƒμœ„ 3개 WebGL 2 κΈ°λŠ₯/μ‚¬μš© 사둀(μ€‘μš”ν•œ μˆœμ„œλŒ€λ‘œ):

  1. λ©€ν‹°μƒ˜ν”Œλ§λœ λ Œλ” νƒ€κ²Ÿ: ν›„μ²˜λ¦¬μ—μ„œ μ μ ˆν•œ (MS)AAλ₯Ό μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.
  2. μ •μˆ˜ ν…μŠ€μ²˜: μ„œλͺ…λœ λ””μŠ€ν„΄μŠ€ ν•„λ“œμ™€ 같은 이미지 기반 μ•Œκ³ λ¦¬μ¦˜μ„ μˆ˜ν–‰ν•˜κ³  DEM(디지털 고도 λͺ¨λΈ)κ³Ό 같은 보닀 이ꡭ적인 ν…μŠ€μ²˜ 기반 데이터λ₯Ό μ‚¬μš©ν•©λ‹ˆλ‹€.
  3. λ³€ν™˜ ν”Όλ“œλ°±: νŒŒν‹°ν΄ μ‹œμŠ€ν…œμ„ μˆ˜ν–‰ν•˜λŠ” 데 μ‚¬μš©λ©λ‹ˆλ‹€.

@mrdoob 그런데 #9358 PR이 λ³‘ν•©λ˜μ§€ μ•Šμ€ 이유λ₯Ό μ•Œκ³  μžˆμŠ΅λ‹ˆκΉŒ? @mattalat 이 μž‘μ„±ν•œ κ²ƒμ²˜λŸΌ 닀쀑 λŒ€μƒ λ Œλ”λ§μ„ threejs둜 κ°€μ Έμ˜΅λ‹ˆλ‹€. 2λ…„ 전에 μ»€λ°‹λ˜μ—ˆμœΌλ©° λ‹€λ₯Έ λ³€κ²½ 사항을 μ΅œμ‹  μƒνƒœλ‘œ μœ μ§€ν•˜κΈ° μœ„ν•΄ μ—¬λŸ¬ 번 μˆ˜μ •λ˜μ—ˆμœΌλ©° μ§€κΈˆκΉŒμ§€λŠ” μ—†μŠ΅λ‹ˆλ‹€ :(

SDF λͺ¨μ–‘ μ„€λͺ…을 많이 μ‚¬μš©ν•˜λŠ” μž₯면이 있기 λ•Œλ¬Έμ— 그것에 λŒ€ν•΄ μ§ˆλ¬Έν•©λ‹ˆλ‹€. 각 λͺ¨μ–‘은 6개의 μ„œλ‘œ λ‹€λ₯Έ 좜λ ₯을 좜λ ₯ν•˜λ―€λ‘œ 이제 0μ—μ„œ 5κΉŒμ§€μ˜ 셰이더 λ²ˆν˜Έμ— μ „λ‹¬ν•˜μ—¬ 6번 κ³„μ‚°ν•©λ‹ˆλ‹€. μ—¬λŸ¬ 좜λ ₯을 μ‚¬μš©ν•˜λŠ” 것이 훨씬 더 쒋을 것이며 λ‹¨μˆœνžˆ 5배의 μ„±λŠ₯ ν–₯상을 κ°€μ Έμ˜¬ κ²ƒμž…λ‹ˆλ‹€.

@wdanilo μ•„λ§ˆλ„ μ μ ˆν•œ μ‹œκΈ°κ°€ μ•„λ‹ˆμ—ˆμ„ κ²ƒμž…λ‹ˆλ‹€(λ‹Ήμ‹œ λ Œλ”λŸ¬μ—μ„œ μ›€μ§μ΄λŠ” λ§Žμ€ 것듀이 μžˆμ—ˆμŠ΅λ‹ˆλ‹€). λ˜ν•œ μΆ©λŒμ„ μ‰½κ²Œ μΌμœΌν‚€λŠ” λΉŒλ“œκ°€ ν¬ν•¨λœ 것 κ°™μŠ΅λ‹ˆλ‹€. μƒˆλ‘œμš΄ PR을 ν•  μ‚¬λžŒμ΄ μžˆμŠ΅λ‹ˆκΉŒ?

/cc @edankwan

3D ν…μŠ€μ²˜μ™€ λ©€ν‹°μƒ˜ν”Œ λ Œλ” νƒ€κ²Ÿμ΄ ν•„μš”ν•©λ‹ˆλ‹€.

ν˜„μž¬ μ‚¬μš©ν•  수 μžˆλŠ” λ‹€λ₯Έ 방법이 μ—†λŠ” ν•œ depthTexture.type = THREE.FloatType..을 μ„€μ •ν•  수 μžˆλ„λ‘ μ‚¬μš©ν•˜λ €κ³  ν•©λ‹ˆλ‹€.

1 μ΄μ™Έμ˜ LineThicknessκ°€ Windows 및 WebGL 2.0μ—μ„œ μž‘λ™ν•  κ²ƒμ΄λΌλŠ” 희망이 μžˆμŠ΅λ‹ˆκΉŒ? κ·Έλ ‡λ‹€λ©΄ 일뢀 좜λ ₯이 ν–₯μƒλ©λ‹ˆλ‹€.

그리고 μ—¬κΈ°μ—μ„œ λ‚˜λŠ” λ‚˜ μžμ‹ μ—κ²Œ λŒ€λ‹΅ν•œλ‹€. SOμ—μ„œ Thickness-of-lines-using-three-linebasicmaterial을 읽고 λ‚˜λŠ” λ‘κΊΌμš΄ 선이 μ–΄μ¨Œλ“  λ―Έλž˜μ— κΈ°ν•˜ν•™μ΄ ν•„μš”ν•˜λ‹€λŠ” 것을 μ΄ν•΄ν–ˆμŠ΅λ‹ˆλ‹€.

@Richard004 이것은 WebGL 2와 아무 관련이 μ—†μŠ΅λ‹ˆλ‹€. μš°λ¦¬λŠ” 이미 이 κΈ°λŠ₯ μš”μ²­μ— λŒ€ν•œ PR을 가지고 μžˆμŠ΅λ‹ˆλ‹€. #11349λ₯Ό μ°Έμ‘°ν•˜μ„Έμš” πŸ‘

μ•ˆλ…•ν•˜μ„Έμš” @mrdoob 및 @Mugen87
ν”„λž˜κ·Έλ¨ΌνŠΈ 셰이더 λ‚΄λΆ€μ˜ λΉ„νŠΈ μ‘°μž‘κ³Ό 동적 λ°°μ—΄ 인덱싱이 ν•„μš”ν•©λ‹ˆλ‹€. 첫 번째 것은 μ•„λ§ˆλ„ ν”ν•˜μ§€ μ•Šμ„ κ²ƒμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ CUDA 컀널을 WebGL(GLSL)둜 μ΄μ‹ν•˜λ €κ³  ν•˜κ³  λ‹€λ₯Έ 셰이더 μ–Έμ–΄λŠ” λΉ„νŠΈ μ‘°μž‘μ„ ν—ˆμš©ν•˜μ§€λ§Œ WebGL 1.0(GLSL)은 그렇지 μ•ŠκΈ° λ•Œλ¬Έμ— 상관없이 ν•„μš”ν•©λ‹ˆλ‹€.

두 λ²ˆμ§ΈλŠ” λ§Žμ€ κ°œλ°œμžκ°€ 이점을 λˆ„λ¦΄ 수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€. 즉, λ³€μˆ˜κ°€ μžˆλŠ” λ°°μ—΄ μš”μ†Œμ— μ•‘μ„ΈμŠ€ν•˜λŠ” κ²ƒμž…λ‹ˆλ‹€. ν˜„μž¬ WebGL 1.0(GLSL)μ—μ„œλŠ” λ‹€μŒκ³Ό 같은 ν”„λ‘œκ·Έλž¨μ΄ μ‹€νŒ¨ν•©λ‹ˆλ‹€.

int myData[200];
int x = 3; // 'x' might change later based on my lookup needs
int requestedData = myData[x];

κ·ΈλŸ¬λ‚˜ WebGL 2.0μ—μ„œλŠ” 이것을 ν•  수 μžˆμŠ΅λ‹ˆλ‹€. λ°°μ—΄μ—μ„œ λ‹€λ₯Έ 값을 가져와야 ν•˜λŠ” 루프 λ‚΄λΆ€μ—μ„œ μ’…μ’… ν•„μš”ν•˜μ§€λ§Œ 반볡 루프(예: μœ„μ˜ μ˜ˆμ—μ„œ 0 ~ 199)λ₯Ό μˆ˜ν–‰ν•  수 μ—†μŠ΅λ‹ˆλ‹€. μš”μ†Œμ΄λ©° 정말 λŠλ¦½λ‹ˆλ‹€.

ν›„μ²˜λ¦¬μ˜ 앀티앨리어싱은 ν™•μ‹€νžˆ 도움이 될 κ²ƒμž…λ‹ˆλ‹€.

이 λͺ¨λ“  κ²ƒμ˜ λ°‘λ°”νƒ•μ—λŠ” λ‹€μŒκ³Ό 같은 질문이 μžˆμŠ΅λ‹ˆλ‹€. Threeλ₯Ό μœ„ν•œ μƒˆλ‘œμš΄ μ•„ν‚€ν…μ²˜κ°€ ν•„μš”ν•œ μ‹œμ μž…λ‹ˆκΉŒ?

λ‚˜λŠ” μ΅œκ·Όμ— D3, 버전 4λ₯Ό μ‚¬μš©ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. μ™„μ „νžˆ μž¬μ„€κ³„λ˜μ—ˆμŠ΅λ‹ˆλ‹€. μ—μŠ€6
λͺ¨λ“ˆ. 그리고 훨씬 더 μ€‘μš”ν•œ 것은 30 개의 λͺ¨λ“ˆμ΄ 각각 κ³ μœ ν•œ
레포. D3 μ•„ν‚€ν…μ²˜λ₯Ό μ‚΄νŽ΄λ³΄λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€.

3에 이것이 ν•„μš”ν•˜λ‹€λŠ” 말은 μ•„λ‹ˆμ§€λ§Œ λ‹€μŒμ„ κ³ λ €ν•  수 μžˆλ‹€κ³  μƒκ°ν•©λ‹ˆλ‹€.
메이저 버전 λ²”ν”„. λΆ€λΆ„μ μœΌλ‘œ webgl2 λ•Œλ¬Έμž…λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ λ˜ν•œ ν•„μš”λ‘œ 인해
ν•˜μœ„ λͺ¨λ“ˆ.

예: D3 "선택" 리포지토리/ν•˜μœ„ ​​λͺ¨λ“ˆμ΄ μžˆμŠ΅λ‹ˆλ‹€. λ„ˆμ˜ 기본이야
jQuery DOM λͺ¨λ“ˆμ΄μ§€λ§Œ DOM의 λͺ¨λ“  μžμ„Έν•œ μ •λ³΄λŠ”
κΈ°λŠ₯적인 체인 λ””μžμΈ. λ‚˜λ¨Έμ§€λ₯Ό μ‚¬μš©ν•˜μ§€ μ•Šκ³  κ·ΈλŒ€λ‘œ μ‚¬μš©ν•  수 μžˆμŠ΅λ‹ˆλ‹€.
D3.

λͺ¨λ“  webgl을 λ§Œλ“  μ„Έ 개의 독립적인 λͺ¨λ“ˆμ„ μ‚¬λž‘ν•˜μ§€ μ•ŠμœΌμ‹œκ² μŠ΅λ‹ˆκΉŒ?
μž₯황함이 사라진닀? webgl ctx/shaderλ₯Ό μœ„ν•œ μ—¬λŸ¬ ν•˜μœ„ λͺ¨λ“ˆμΌ μˆ˜λ„ μžˆμŠ΅λ‹ˆλ‹€.
관리, 버퍼 관리 λ“±. μ‹€μ œλ‘œ 버퍼 μ§€μ˜€λ©”νŠΈλ¦¬λŠ”
μ΄λ ‡κ²Œ 많이. λΆ€ν’ˆμ—μ„œ 셰이더 생성도 λ§ˆμ°¬κ°€μ§€μž…λ‹ˆλ‹€.

κ·Έλƒ₯ 생각.

@fetox74 이미 AAλ₯Ό ν•  수 μžˆλ‹€κ³  ν™•μ‹ ν•©λ‹ˆλ‹€ https://threejs.org/examples/?q=fxaa#webgl_postprocessing_fxaa

@elunty FXAAShaderλŠ” μ›λž˜μ˜ 앀티앨리어싱에 λΉ„ν•΄ μΆ©λΆ„νžˆ 쒋은 κ²°κ³Όλ₯Ό μƒμ„±ν•˜μ§€ λͺ»ν•©λ‹ˆλ‹€. μ €λŠ” 그것을 μ•Όμƒμ—μ„œ μ‚¬μš©ν–ˆμŠ΅λ‹ˆλ‹€.

μ €λŠ” 주둜 VAO에 관심이 있고 ν•΄λ‹Ή μ‚¬μ–‘μ—μ„œ κ°€λŠ₯ν•˜κΈ°λ₯Ό λ°”λΌλŠ” 밉맡에 글을 μ“°κ³  μžˆμŠ΅λ‹ˆλ‹€.

@pailhead κ΄€λ ¨ #8705 :μœ™ν¬:

EXT_shader_texture_lod 에 λŒ€ν•œ κΈ°λ³Έ 지원을 κΈ°λŒ€ν•©λ‹ˆλ‹€.
λŒ€λΆ€λΆ„μ˜ Android μž₯μΉ˜μ™€ MS Edge 및 Internet Explorerμ—μ„œ MeshStandardMaterial 및 MeshPhysicalMaterial λ₯Ό μ‚¬μš©ν•˜λŠ” λ™μ•ˆ μƒμ„±λ˜λŠ” μ•„ν‹°νŒ©νŠΈλ₯Ό ν•΄κ²°ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

@mrdoob κ·€ν•˜ λ˜λŠ” κ·€ν•˜μ˜ νŒ€μ—μ„œ Threejsλ₯Ό Webgl 2.0으둜 μ—…λ°μ΄νŠΈν•  κ³„νšμ΄ μžˆμŠ΅λ‹ˆκΉŒ? 이 μŠ€λ ˆλ“œλŠ” 말 κ·ΈλŒ€λ‘œ λͺ‡ 년이 걸리며 λ‹€λ₯Έ λͺ¨λ“  ν”„λ ˆμž„μ›Œν¬κ°€ 이미 μ§„ν–‰λ˜λŠ” λ™μ•ˆ μ‹€μ œλ‘œ λ³€κ²½λ˜λŠ” 것은 μ—†μŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 곧 μ–΄λ €μš΄ 결정을 λ‚΄λ¦¬κ²Œ 될 κ²ƒμž…λ‹ˆλ‹€. μš°λ¦¬λŠ” μ•„λ§ˆλ„ λ°”λΉŒλ‘ μ΄λ‚˜ λ‹€λ₯Έ 곳으둜 이주해야 ν•  것이고 μ €λŠ” μ •λ§λ‘œ Three에 λ¨Έλ¬Όκ³  μ‹ΆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” ν˜„λŒ€ν™”λ₯Ό μœ„ν•œ μ–΄λ–€ κ³„νšμ΄λΌλ„ μžˆμ„ κ²ƒμž…λ‹ˆλ‹€.

@wdanilo WebGL 2.0이 ν”„λ‘œμ νŠΈμ˜ μš°μ„  μˆœμœ„λΌλ©΄ Babylon으둜 λ§ˆμ΄κ·Έλ ˆμ΄μ…˜ν•˜λŠ” 것이 μ’‹μŠ΅λ‹ˆλ‹€. 일뢀 three.js κΈ°κ³ μžλ“€μ΄ μž‘μ—…μ„ κ³„νšν•˜κ³  μžˆλ‹€λŠ” 것을 μ•Œκ³  μžˆμ§€λ§Œ 개인적으둜 WebVR 및 μ•„ν‹°μŠ€νŠΈ μ›Œν¬ν”Œλ‘œ(svg 지원 λ“±)에 μ§‘μ€‘ν•˜κ³  μžˆμŠ΅λ‹ˆλ‹€.

@mrdoob λΉ λ₯Έ 닡변에 정말 κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. three.jsλ₯Ό 버리지 μ•Šμ•˜μœΌλ©΄ ν•©λ‹ˆλ‹€. μ €λŠ” libκ°€ ν›„λ“œ μ•„λž˜μ—μ„œ κ΅¬μ„±λ˜λŠ” 방식과 "κ²Œμž„ 쀑심" 등이 μ•„λ‹Œ "일반" ν”„λ ˆμž„μ›Œν¬λΌλŠ” 가정을 μ’‹μ•„ν•©λ‹ˆλ‹€. μ–΄μ¨Œλ“ , 정보λ₯Ό μ œκ³΅ν•˜κ³  이λ₯Ό λͺ…ν™•ν•˜κ²Œ μœ μ§€ν•΄ μ£Όμ…”μ„œ κ°μ‚¬ν•©λ‹ˆλ‹€.

(λ‹€μ‹œ ν•œ 번 @takahirox μ—κ²Œ κ°μ‚¬λ“œλ¦½λ‹ˆλ‹€. 이 μŠ€λ ˆλ“œλ₯Ό μ•Œκ³  μžˆμ—ˆμŠ΅λ‹ˆλ‹€.) 방금 ν’€ λ¦¬ν€˜μŠ€νŠΈ #13692λ₯Ό ν–ˆμŠ΅λ‹ˆλ‹€. λ‚˜λŠ” 초점이 우리의 λͺ©μ μ΄ μ•„λ‹ˆλΌ 우리의 λͺ©μ μ„ μœ„ν•΄ 잘 μž‘λ™ν•˜κ³  μžˆλ‹€λŠ” 것을 μ΄ν•΄ν•©λ‹ˆλ‹€.

κ΄€λ ¨ #13702

#9965 및 #12250 λ‹€μŒμ— WebGL2 κΈ°λ³Έ λΆ„κΈ°λ₯Ό λ§Œλ“€μ—ˆμŠ΅λ‹ˆλ‹€.

레포: https://github.com/takahirox/three.js/tree/WebGL2Base
예: https://rawgit.com/takahirox/three.js/WebGL2Base/examples/index.html

WebGL2.0 + Three.jsλ₯Ό μ‹œμž‘ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

( @yoshikiohshima μž‘μ—…κ³Ό μΆ©λŒν•΄μ„œ μ£„μ†‘ν•©λ‹ˆλ‹€)

@mrdoob three.js/dev-2.0κ³Ό 같은 WebGL2Renderer에 λŒ€ν•œ λΆ„κΈ°λ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ webgl1κ³Ό webgl2 사이에 μ—¬μ „νžˆ λ§Žμ€ 쀑볡 μ½”λ“œκ°€ μžˆλŠ”λ° dev에 병합할 수 μžˆμŠ΅λ‹ˆκΉŒ?

μ €λŠ” 이 λ¬Έμ œμ— λŒ€ν•œ κ³Όκ±° κ°œλ°œμ— μ΅μˆ™ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. @takahirox , κ·€ν•˜κ°€ μ·¨ν•˜κ³  μžˆλŠ” μ „λž΅κ³Ό https://github.com/takahirox/three.js/tree/WebGL2Baseμ—μ„œ μ§€μ›ν•˜λŠ” μ „λž΅μ„ μš”μ•½ν•  수 μžˆμŠ΅λ‹ˆκΉŒ? (그리고 λ‹€μ‹œ ν•œ 번 λ‚΄ 무지에 λŒ€ν•΄ 유감슀럽게 μƒκ°ν•©λ‹ˆλ‹€) κ·ΈλŸ¬λ‚˜ WebGL2λ₯Ό μ§€μ›ν•˜κΈ° μœ„ν•΄ λ§Žμ€ 쀑볡 μ½”λ“œκ°€ ν•„μš”ν•˜λ‹€λŠ” 것을 μ•Œμ§€ λͺ»ν–ˆμŠ΅λ‹ˆλ‹€. λ¬Έμ œλŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

@mrdoob three.js/dev-2.0κ³Ό 같은 WebGL2Renderer에 λŒ€ν•œ λΆ„κΈ°λ₯Ό κ°€μ§ˆ 수 μžˆμŠ΅λ‹ˆκΉŒ? μ•„λ‹ˆλ©΄ webgl1κ³Ό webgl2 사이에 μ—¬μ „νžˆ λ§Žμ€ 쀑볡 μ½”λ“œκ°€ μžˆλŠ”λ° dev에 병합할 수 μžˆμŠ΅λ‹ˆκΉŒ?

이것이 μ™œ μƒˆλ‘œμš΄ λΆ„κΈ°κ°€ ν•„μš”ν•œμ§€ ν™•μ‹€ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 쀑볡 μ½”λ“œκ°€ μžˆλŠ” μ΄μœ λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?

μΆ©λŒμ€ μ—†μ–΄ λ³΄μž…λ‹ˆλ‹€. 이제 WebGL2.0에 λŒ€ν•œ 두 가지 μš”κ΅¬ 사항이 μžˆμŠ΅λ‹ˆλ‹€.

  1. 전체 WebGL2.0 κΈ°λŠ₯을 μ§€μ›ν•˜κ³  μ΅œμ ν™”ν•˜κΈ° μœ„ν•΄ WebGL2Renderer λ§Œλ“€κΈ°
  2. κΈ°μ‘΄ WebGLRenderer 에 webgl2 지원을 μΆ”κ°€ν•©λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μš°λ¦¬λŠ” WebGL2.0 κΈ°λŠ₯을 μ™„μ „νžˆ μ§€μ›ν•˜μ§€ μ•ŠμœΌλ©° λ Œλ”λŸ¬λ₯Ό μ—‰λ§μœΌλ‘œ λ§Œλ“€κ³  싢지 μ•ŠκΈ° λ•Œλ¬Έμ— WebGL2.0에 μ΅œμ ν™”ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. 기본적으둜 이것은 Three.js + WebGL2.0 + GLSL3.0의 초기 μ•‘μ„ΈμŠ€λ₯Ό μœ„ν•œ κ²ƒμž…λ‹ˆλ‹€.

λ‚΄ μž‘μ—…μ€ 1용이고 그의 μž‘μ—…μ€ 2μš©μž…λ‹ˆλ‹€. 쀑볡 μ½”λ“œκ°€ μ—†κ³  2용 μƒˆ λΆ„κΈ°λ₯Ό λ§Œλ“€ ν•„μš”λ„ μ—†μŠ΅λ‹ˆλ‹€.

@takahirox λ‹ΉλΆ„κ°„ 같은 μ§€μ μ—μ„œ μΌν•˜λŠ” 게 λ‚˜μ„ 것 κ°™μ•„μš”.

κ°œμ„ ν•˜λ©΄...

https://github.com/mrdoob/three.js/blob/dev/src/renderers/WebGL2Renderer.js

webgl2 μ˜ˆμ œλŠ” 클래슀λ₯Ό 직접 κ°€μ Έμ˜΅λ‹ˆλ‹€(λΉŒλ“œ ν•„μš” μ—†μŒ)...

https://github.com/mrdoob/three.js/blob/dev/examples/webgl2_sandbox.html#L39 -L47

κ°ˆλ“±μ΄ μ—†μ–΄μ•Ό ν•©λ‹ˆλ‹€.

WebGLRenderer ν•˜λ‚˜μ—μ„œ WebGL2.0 지원을 μ‹œμž‘ν•œ 것 κ°™κΈ° λ•Œλ¬Έμ— μ§€κΈˆκΉŒμ§€ λ‚΄ WebGL2Baseλ₯Ό μžŠμ–΄λ²„λ¦΄ 수 μžˆμŠ΅λ‹ˆλ‹€.

μš°λ¦¬λŠ” μ—¬μ „νžˆ WebGL2Renderer κ΅¬ν˜„μ— λŒ€ν•΄ μƒκ°ν•˜κ³  μžˆμŠ΅λ‹ˆκΉŒ?
λ‚˜λŠ” μ΅œκ·Όμ— WebGL2 지원을 μΆ”κ°€ν•˜κΈ° μœ„ν•΄ λ§Žμ€ 것을 μ°Ύκ³  μžˆμ—ˆκ³  takahiroxκ°€ 광산을 λ¦¬λ² μ΄μŠ€ν•˜κΈ° μœ„ν•΄ λ³€κ²½ν•˜κΈ°λ₯Ό 기닀리고 μžˆμŠ΅λ‹ˆλ‹€. κ·ΈλŸ¬λ‚˜ μ•½κ°„μ˜ 변경을 μˆ˜ν–‰ν•œ ν›„ WebGLTextures 개체뿐만 μ•„λ‹ˆλΌ λ Œλ”λŸ¬λ₯Ό λ‹€μ‹œ μž‘μ„±ν•˜λŠ” 것이 정말 쒋은 생각이라고 μƒκ°ν•˜κΈ° μ‹œμž‘ν–ˆμŠ΅λ‹ˆλ‹€. 아직 ν™”μ œκ°€ λœλ‹€λ©΄ 기꺼이 μ°Έμ—¬ν•˜κ² μŠ΅λ‹ˆλ‹€.

κ·Έλ ‡κ²Œ μƒκ°ν•©λ‹ˆλ‹€. ν˜„μž¬ WebGLRenderer 에 κΈ°λ³Έ webgl 2.0 지원을 μΆ”κ°€ν•˜λŠ” 것은 WebGL2Renderer μ—μ„œ μž‘μ—…ν•˜λŠ” λ™μ•ˆ 무언가λ₯Ό κ°–λŠ” 것뿐이라고 μƒκ°ν•©λ‹ˆλ‹€.

자유둭게 λ Œλ”λŸ¬λ₯Ό λ‹€μ‹œ μž‘μ„±ν•˜κ³  PR을 λ³΄λ‚΄μ‹­μ‹œμ˜€(μ΄μƒμ μœΌλ‘œλŠ” 단계별).

λ‹Ήμ—°ν•œ κ±Έ λ¬»λŠ”λ‹€λ©΄ μ£„μ†‘ν•˜μ§€λ§Œ 이 전체 문제λ₯Ό 읽은 ν›„ λ°˜λ…„ μ „ λ§ˆμ§€λ§‰ κ²Œμ‹œλ¬Όκ³Ό λ§ˆμŠ€ν„° μ†ŒμŠ€ μ½”λ“œμ™€ 예제 λͺ¨λ‘μ—μ„œ webgl2에 λŒ€ν•œ λͺ‡ 가지 μ°Έμ‘°λ₯Ό 찾은 후에도 μ—¬μ „νžˆ 잘 μ΄ν•΄ν•˜μ§€ λͺ»ν•˜λŠ” 것 κ°™μŠ΅λ‹ˆλ‹€. .

Webgl2κ°€ Three.js의 ν˜„μž¬ μƒνƒœμ—μ„œ μ‚¬μš©ν•  수 μžˆλŠ”μ§€ κΆκΈˆν•˜μ‹­λ‹ˆκΉŒ? (λ‹¨μˆœν•œ 버퍼 μ§€μ˜€λ©”νŠΈλ¦¬ λ©”μ‹œλ₯Ό λ Œλ”λ§ν•˜λ”λΌλ„) EffectComposerκ°€ webgl2-context-enabled λ Œλ”λŸ¬μ™€ ν•¨κ»˜ μž‘λ™ν•©λ‹ˆκΉŒ? λ Œλ” νƒ€κ²Ÿμ„ μ–΄λ–€ μ‹μœΌλ‘œλ“  μ‘°μ •ν•΄μ•Ό ν•©λ‹ˆκΉŒ?

λ¬Όλ‘  κ°€μž₯ 큰 μ§ˆλ¬Έμ€ μ‚¬μš©μž μ •μ˜ νŒ¨μŠ€μ™€ ν•¨κ»˜ μž‘κ³‘κ°€λ₯Ό μ‚¬μš©ν•  λ•Œ μ μ ˆν•œ 앀티앨리어싱을 얻을 수 μžˆλŠ”μ§€ μ—¬λΆ€μž…λ‹ˆλ‹€.

κ²°κ΅­ WebGLRenderer 에 WebGL 2.0 κΈ°λŠ₯을 μΆ”κ°€ν•œ 것 κ°™μŠ΅λ‹ˆλ‹€.
WebGPUλŠ” ν™•μ‹€νžˆ WebGPURenderer κ°€ ν•„μš”ν•©λ‹ˆλ‹€.

이 νŽ˜μ΄μ§€κ°€ 도움이 λ˜μ—ˆλ‚˜μš”?
0 / 5 - 0 λ“±κΈ‰