-
-
Notifications
You must be signed in to change notification settings - Fork 35.8k
Add THREE.CompressedCubeTexture #26369
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Merged
Mugen87
merged 1 commit into
mrdoob:dev
from
donmccurdy:feat/CompressedCubeTextureLoader
Jul 5, 2023
Merged
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,19 @@ | ||
import { CubeReflectionMapping } from '../constants.js'; | ||
import { CompressedTexture } from './CompressedTexture.js'; | ||
|
||
class CompressedCubeTexture extends CompressedTexture { | ||
|
||
constructor( images, format, type ) { | ||
|
||
super( undefined, images[ 0 ].width, images[ 0 ].height, format, type, CubeReflectionMapping ); | ||
|
||
this.isCompressedCubeTexture = true; | ||
this.isCubeTexture = true; | ||
|
||
this.image = images; | ||
|
||
} | ||
|
||
} | ||
|
||
export { CompressedCubeTexture }; |
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@donmccurdy Would it work to pass in
[]
formipmaps
instead ofundefined
? I'm working on the types for this. If taken strictly,Texture.mipmaps
andCompressedTexture.mipmaps
would now need to beImageData[] | undefined
instead ofImageData[]
, which is more disruptive of a change for the users of the types.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I believe it's correct that the
.mipmaps
property is a non-nullable array, but not safe to pass an empty array up to the constructor here... I would just assume that mipmaps gets populated correctly during texture initialization, and not make the property nullable in the TS definitions.There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Okay, thanks, good to know. For my own education, where do the
mipmaps
end up getting set for theCompressedCubeTexture
inKTX2Loader
?There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see mipmaps getting set for other textures in
createRawTexture
, but don't do something similar in_createTextureFrom
whereCompressedCubeTexture
is used.Uh oh!
There was an error while loading. Please reload this page.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You can see where it would be set in #26642, but I can't promise that KTX2Loader sets up all texture types correctly today. Constructing compressed array, cube, and 3D textures is not a fully-documented API, and we don't have many test cases for it, so I'm kind of trial-and-erroring my through this part. Maybe once #26642 is working we'll have a better idea how to construct textures for each of these cases...