Skip to content

Commit 3265aba

Browse files
committed
feat: Remove need for manually assigning Line2 material resolution
mrdoob/three.js#28343
1 parent 40a4d33 commit 3265aba

File tree

3 files changed

+30
-2
lines changed

3 files changed

+30
-2
lines changed

src/lines/LineMaterial.js

-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@
77
* dashSize: <float>,
88
* dashOffset: <float>,
99
* gapSize: <float>,
10-
* resolution: <Vector2>, // to be set by renderer
1110
* }
1211
*/
1312

src/lines/LineSegments2.js

+15
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@ import {
1313
import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry'
1414
import { LineMaterial } from '../lines/LineMaterial'
1515

16+
const _viewport = new Vector4();
17+
1618
const _start = new Vector3()
1719
const _end = new Vector3()
1820

@@ -300,6 +302,19 @@ class LineSegments2 extends Mesh {
300302
raycastScreenSpace(this, camera, intersects)
301303
}
302304
}
305+
306+
onBeforeRender(renderer) {
307+
308+
const uniforms = this.material.uniforms;
309+
310+
if (uniforms && uniforms.resolution) {
311+
312+
renderer.getViewport(_viewport);
313+
this.material.uniforms.resolution.value.set(_viewport.z, _viewport.w);
314+
315+
}
316+
317+
}
303318
}
304319

305320
export { LineSegments2 }

src/lines/Wireframe.js

+15-1
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,10 @@
1-
import { InstancedInterleavedBuffer, InterleavedBufferAttribute, Mesh, Vector3 } from 'three'
1+
import { InstancedInterleavedBuffer, InterleavedBufferAttribute, Mesh, Vector3, Vector4 } from 'three'
22
import { LineSegmentsGeometry } from '../lines/LineSegmentsGeometry'
33
import { LineMaterial } from '../lines/LineMaterial'
44

55
const _start = new Vector3()
66
const _end = new Vector3()
7+
const _viewport = new Vector4();
78

89
class Wireframe extends Mesh {
910
constructor(geometry = new LineSegmentsGeometry(), material = new LineMaterial({ color: Math.random() * 0xffffff })) {
@@ -38,6 +39,19 @@ class Wireframe extends Mesh {
3839

3940
return this
4041
}
42+
43+
onBeforeRender( renderer ) {
44+
45+
const uniforms = this.material.uniforms;
46+
47+
if ( uniforms && uniforms.resolution ) {
48+
49+
renderer.getViewport( _viewport );
50+
this.material.uniforms.resolution.value.set( _viewport.z, _viewport.w );
51+
52+
}
53+
54+
}
4155
}
4256

4357
export { Wireframe }

0 commit comments

Comments
 (0)