Dies ist das Repository meines kleinen Portfolios.
Im Hintergrund läuft eine Planetensimulation, geschrieben in JavaScript und Three.js.
Die zu sehenden Texturen stammen von:
https://www.solarsystemscope.com/textures/
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
779 B
56 lines
779 B
import { FloatNode } from '../inputs/FloatNode.js'; |
|
|
|
class MaxMIPLevelNode extends FloatNode { |
|
|
|
constructor( texture ) { |
|
|
|
super(); |
|
|
|
this.texture = texture; |
|
|
|
this.maxMIPLevel = 0; |
|
|
|
} |
|
|
|
get value() { |
|
|
|
if ( this.maxMIPLevel === 0 ) { |
|
|
|
var image = this.texture.value.image; |
|
|
|
if ( Array.isArray( image ) ) image = image[ 0 ]; |
|
|
|
this.maxMIPLevel = image !== undefined ? Math.log( Math.max( image.width, image.height ) ) * Math.LOG2E : 0; |
|
|
|
} |
|
|
|
return this.maxMIPLevel; |
|
|
|
} |
|
|
|
set value( val ) { |
|
|
|
|
|
} |
|
|
|
toJSON( meta ) { |
|
|
|
let data = this.getJSONNode( meta ); |
|
|
|
if ( ! data ) { |
|
|
|
data = this.createJSONNode( meta ); |
|
|
|
data.texture = this.texture.uuid; |
|
|
|
} |
|
|
|
return data; |
|
|
|
} |
|
|
|
} |
|
|
|
MaxMIPLevelNode.prototype.nodeType = 'MaxMIPLevel'; |
|
|
|
export { MaxMIPLevelNode };
|
|
|