three 基础库
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.

57 lines
779 B

2 years ago
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 };