| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719 |
- import { ObjectLoader } from '../../../src/loaders/ObjectLoader.js';
- import {
- FrontSide,
- BackSide,
- DoubleSide,
- NormalBlending,
- AdditiveBlending,
- SubtractiveBlending,
- MultiplyBlending,
- CustomBlending,
- SrcAlphaFactor,
- OneMinusSrcAlphaFactor
- } from '../../../src/constants.js';
- export default QUnit.module( 'JSON4 Format', () => {
- QUnit.module( 'Materials', () => {
- QUnit.test( 'MeshBasicMaterial - color, wireframe, opacity', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshBasicMaterial',
- color: 16711680,
- wireframe: true,
- opacity: 0.5,
- transparent: true
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.ok( mesh.material.isMeshBasicMaterial, 'Is MeshBasicMaterial' );
- assert.strictEqual( mesh.material.color.getHex(), 0xff0000, 'Color is red' );
- assert.strictEqual( mesh.material.wireframe, true, 'Wireframe is true' );
- assert.strictEqual( mesh.material.opacity, 0.5, 'Opacity is 0.5' );
- assert.strictEqual( mesh.material.transparent, true, 'Transparent is true' );
- } );
- QUnit.test( 'MeshBasicMaterial - side property', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshBasicMaterial',
- color: 16711680,
- side: DoubleSide
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.strictEqual( mesh.material.side, DoubleSide, 'Side is DoubleSide' );
- } );
- QUnit.test( 'MeshStandardMaterial - roughness, metalness', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshStandardMaterial',
- color: 16711680,
- roughness: 0.3,
- metalness: 0.8,
- emissive: 65280,
- emissiveIntensity: 0.5
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.ok( mesh.material.isMeshStandardMaterial, 'Is MeshStandardMaterial' );
- assert.strictEqual( mesh.material.color.getHex(), 0xff0000, 'Color is red' );
- assert.strictEqual( mesh.material.roughness, 0.3, 'Roughness is 0.3' );
- assert.strictEqual( mesh.material.metalness, 0.8, 'Metalness is 0.8' );
- assert.strictEqual( mesh.material.emissive.getHex(), 0x00ff00, 'Emissive is green' );
- assert.strictEqual( mesh.material.emissiveIntensity, 0.5, 'EmissiveIntensity is 0.5' );
- } );
- QUnit.test( 'MeshPhysicalMaterial - clearcoat, transmission, sheen', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshPhysicalMaterial',
- color: 16711680,
- clearcoat: 0.5,
- clearcoatRoughness: 0.1,
- transmission: 0.9,
- ior: 1.5,
- sheen: 0.5,
- sheenRoughness: 0.25,
- sheenColor: 255
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.ok( mesh.material.isMeshPhysicalMaterial, 'Is MeshPhysicalMaterial' );
- assert.strictEqual( mesh.material.clearcoat, 0.5, 'Clearcoat is 0.5' );
- assert.strictEqual( mesh.material.clearcoatRoughness, 0.1, 'ClearcoatRoughness is 0.1' );
- assert.strictEqual( mesh.material.transmission, 0.9, 'Transmission is 0.9' );
- assert.strictEqual( mesh.material.ior, 1.5, 'IOR is 1.5' );
- assert.strictEqual( mesh.material.sheen, 0.5, 'Sheen is 0.5' );
- assert.strictEqual( mesh.material.sheenRoughness, 0.25, 'SheenRoughness is 0.25' );
- } );
- QUnit.test( 'MeshPhysicalMaterial - iridescence, anisotropy', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshPhysicalMaterial',
- color: 16711680,
- iridescence: 1.0,
- iridescenceIOR: 1.3,
- iridescenceThicknessRange: [ 100, 400 ],
- anisotropy: 0.5,
- anisotropyRotation: Math.PI / 4
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.strictEqual( mesh.material.iridescence, 1.0, 'Iridescence is 1.0' );
- assert.strictEqual( mesh.material.iridescenceIOR, 1.3, 'IridescenceIOR is 1.3' );
- assert.deepEqual( mesh.material.iridescenceThicknessRange, [ 100, 400 ], 'IridescenceThicknessRange' );
- assert.strictEqual( mesh.material.anisotropy, 0.5, 'Anisotropy is 0.5' );
- assert.ok( Math.abs( mesh.material.anisotropyRotation - Math.PI / 4 ) < 0.0001, 'AnisotropyRotation' );
- } );
- QUnit.test( 'MeshPhongMaterial - shininess, specular', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshPhongMaterial',
- color: 16711680,
- shininess: 100,
- specular: 16777215
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.ok( mesh.material.isMeshPhongMaterial, 'Is MeshPhongMaterial' );
- assert.strictEqual( mesh.material.shininess, 100, 'Shininess is 100' );
- assert.strictEqual( mesh.material.specular.getHex(), 0xffffff, 'Specular is white' );
- } );
- QUnit.test( 'MeshLambertMaterial', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshLambertMaterial',
- color: 16711680,
- emissive: 65280
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.ok( mesh.material.isMeshLambertMaterial, 'Is MeshLambertMaterial' );
- assert.strictEqual( mesh.material.color.getHex(), 0xff0000, 'Color is red' );
- assert.strictEqual( mesh.material.emissive.getHex(), 0x00ff00, 'Emissive is green' );
- } );
- QUnit.test( 'MeshToonMaterial', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshToonMaterial',
- color: 16711680
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.ok( mesh.material.isMeshToonMaterial, 'Is MeshToonMaterial' );
- assert.strictEqual( mesh.material.color.getHex(), 0xff0000, 'Color is red' );
- } );
- QUnit.test( 'LineBasicMaterial - color, linewidth', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BufferGeometry',
- data: {
- attributes: {
- position: {
- itemSize: 3,
- type: 'Float32Array',
- array: [ 0, 0, 0, 1, 1, 1 ],
- normalized: false
- }
- }
- }
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'LineBasicMaterial',
- color: 65280,
- linewidth: 2
- } ],
- object: {
- uuid: 'line-1',
- type: 'Line',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const line = loader.parse( json );
- assert.ok( line.material.isLineBasicMaterial, 'Is LineBasicMaterial' );
- assert.strictEqual( line.material.color.getHex(), 0x00ff00, 'Color is green' );
- assert.strictEqual( line.material.linewidth, 2, 'Linewidth is 2' );
- } );
- QUnit.test( 'LineDashedMaterial - dashSize, gapSize', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BufferGeometry',
- data: {
- attributes: {
- position: {
- itemSize: 3,
- type: 'Float32Array',
- array: [ 0, 0, 0, 1, 1, 1 ],
- normalized: false
- }
- }
- }
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'LineDashedMaterial',
- color: 65280,
- dashSize: 3,
- gapSize: 1,
- scale: 2
- } ],
- object: {
- uuid: 'line-1',
- type: 'Line',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const line = loader.parse( json );
- assert.ok( line.material.isLineDashedMaterial, 'Is LineDashedMaterial' );
- assert.strictEqual( line.material.dashSize, 3, 'DashSize is 3' );
- assert.strictEqual( line.material.gapSize, 1, 'GapSize is 1' );
- assert.strictEqual( line.material.scale, 2, 'Scale is 2' );
- } );
- QUnit.test( 'PointsMaterial - size, sizeAttenuation', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BufferGeometry',
- data: {
- attributes: {
- position: {
- itemSize: 3,
- type: 'Float32Array',
- array: [ 0, 0, 0, 1, 1, 1, 2, 2, 2 ],
- normalized: false
- }
- }
- }
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'PointsMaterial',
- color: 255,
- size: 5,
- sizeAttenuation: false
- } ],
- object: {
- uuid: 'points-1',
- type: 'Points',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const points = loader.parse( json );
- assert.ok( points.material.isPointsMaterial, 'Is PointsMaterial' );
- assert.strictEqual( points.material.color.getHex(), 0x0000ff, 'Color is blue' );
- assert.strictEqual( points.material.size, 5, 'Size is 5' );
- assert.strictEqual( points.material.sizeAttenuation, false, 'SizeAttenuation is false' );
- } );
- QUnit.test( 'SpriteMaterial - rotation', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- materials: [ {
- uuid: 'mat-1',
- type: 'SpriteMaterial',
- color: 16711680,
- rotation: Math.PI / 4,
- sizeAttenuation: true
- } ],
- object: {
- uuid: 'sprite-1',
- type: 'Sprite',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const sprite = loader.parse( json );
- assert.ok( sprite.material.isSpriteMaterial, 'Is SpriteMaterial' );
- assert.strictEqual( sprite.material.color.getHex(), 0xff0000, 'Color is red' );
- assert.ok( Math.abs( sprite.material.rotation - Math.PI / 4 ) < 0.0001, 'Rotation is PI/4' );
- } );
- QUnit.test( 'Blending modes - Normal, Additive', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [
- {
- uuid: 'mat-1',
- type: 'MeshBasicMaterial',
- color: 16711680,
- blending: NormalBlending
- },
- {
- uuid: 'mat-2',
- type: 'MeshBasicMaterial',
- color: 65280,
- blending: AdditiveBlending
- }
- ],
- object: {
- uuid: 'scene-1',
- type: 'Scene',
- children: [
- {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- },
- {
- uuid: 'mesh-2',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-2',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1 ],
- layers: 1
- }
- ]
- }
- };
- const loader = new ObjectLoader();
- const scene = loader.parse( json );
- assert.strictEqual( scene.children[ 0 ].material.blending, NormalBlending, 'First mesh has NormalBlending' );
- assert.strictEqual( scene.children[ 1 ].material.blending, AdditiveBlending, 'Second mesh has AdditiveBlending' );
- } );
- QUnit.test( 'Blending modes - Subtractive, Multiply', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [
- {
- uuid: 'mat-1',
- type: 'MeshBasicMaterial',
- color: 16711680,
- blending: SubtractiveBlending
- },
- {
- uuid: 'mat-2',
- type: 'MeshBasicMaterial',
- color: 65280,
- blending: MultiplyBlending
- }
- ],
- object: {
- uuid: 'scene-1',
- type: 'Scene',
- children: [
- {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- },
- {
- uuid: 'mesh-2',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-2',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 1, 0, 0, 1 ],
- layers: 1
- }
- ]
- }
- };
- const loader = new ObjectLoader();
- const scene = loader.parse( json );
- assert.strictEqual( scene.children[ 0 ].material.blending, SubtractiveBlending, 'First mesh has SubtractiveBlending' );
- assert.strictEqual( scene.children[ 1 ].material.blending, MultiplyBlending, 'Second mesh has MultiplyBlending' );
- } );
- QUnit.test( 'CustomBlending with src/dst factors', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshBasicMaterial',
- color: 16711680,
- blending: CustomBlending,
- blendSrc: SrcAlphaFactor,
- blendDst: OneMinusSrcAlphaFactor
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.strictEqual( mesh.material.blending, CustomBlending, 'Has CustomBlending' );
- assert.strictEqual( mesh.material.blendSrc, SrcAlphaFactor, 'BlendSrc is SrcAlphaFactor' );
- assert.strictEqual( mesh.material.blendDst, OneMinusSrcAlphaFactor, 'BlendDst is OneMinusSrcAlphaFactor' );
- } );
- QUnit.test( 'Material name and userData', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshBasicMaterial',
- name: 'MyMaterial',
- color: 16711680,
- userData: { customProp: 'customValue' }
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.strictEqual( mesh.material.name, 'MyMaterial', 'Material name' );
- assert.strictEqual( mesh.material.userData.customProp, 'customValue', 'Material userData' );
- } );
- QUnit.test( 'Material depthTest, depthWrite, depthFunc', ( assert ) => {
- const json = {
- metadata: { version: 4.7, type: 'Object', generator: 'Object3D.toJSON' },
- geometries: [ {
- uuid: 'geom-1',
- type: 'BoxGeometry',
- width: 1,
- height: 1,
- depth: 1
- } ],
- materials: [ {
- uuid: 'mat-1',
- type: 'MeshBasicMaterial',
- color: 16711680,
- depthTest: false,
- depthWrite: false
- } ],
- object: {
- uuid: 'mesh-1',
- type: 'Mesh',
- geometry: 'geom-1',
- material: 'mat-1',
- matrix: [ 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1 ],
- layers: 1
- }
- };
- const loader = new ObjectLoader();
- const mesh = loader.parse( json );
- assert.strictEqual( mesh.material.depthTest, false, 'DepthTest is false' );
- assert.strictEqual( mesh.material.depthWrite, false, 'DepthWrite is false' );
- } );
- } );
- } );
|