Skip to content

Project Viewer: glTF Mesh Import #4200

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

Open
wants to merge 205 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
205 commits
Select commit Hold shift + click to select a range
c8499b7
GLTF WIP. Still working on getting transforms working proper and nee…
Geenz Apr 8, 2025
b489134
Restore option to change location of existing pick
Ansariel Sep 20, 2024
fb0332d
Merge branch 'devleop-picks-improvement' of https://github.com/Ansari…
Ansariel Apr 18, 2025
d6b8628
Reduce memory allocations pinging the mainloop timeout
Ansariel Sep 24, 2024
23bc14b
Improve inventory finder floater performance: Don't parse XUI tree ea…
Ansariel Sep 21, 2024
47015ed
Fix memory leak in LLImageDimensionsInfo (#2679)
Ansariel Sep 25, 2024
85b88f5
Fix line endings of qatest.yaml
Ansariel Apr 18, 2025
ea96f7a
More constexpr improvements and cleanup of includes of a deleted head…
Ansariel Sep 25, 2024
b81be8e
Performance improvements and cleanup in llviewerdisplay.cpp
Ansariel Sep 23, 2024
3e5f4fd
Merge pull request #3940 from Ansariel/devleop-picks-improvement
marchcat Apr 22, 2025
3dc6c22
Implemented PBR repeats per meter
Hecklezz Apr 23, 2025
1970390
Autofit Blinn Phong normal and specular when using repeats per meter
Hecklezz Apr 24, 2025
56ec95d
Fix scale values not updating if they were focused and you used repea…
Hecklezz Apr 24, 2025
10a324a
Reduce cost of joint lookups by reducing string allocations via use o…
Ansariel Apr 25, 2025
d6699df
Increment viewer version after 2025.04
brad-linden Apr 25, 2025
7f45eac
Increment viewer version after 2024.05
brad-linden Apr 25, 2025
230244b
Merge pull request #3984 from secondlife/brad/version-increments
brad-linden Apr 25, 2025
f6b0660
Cursed stuff!
Geenz Apr 28, 2025
1c72cd7
Fix uploading small textures with OpenJPEG, and minor logging refactor.
Hecklezz Apr 20, 2025
281c7cf
Merge pull request #3973 from Hecklezz/improvement/pbr_rpm_and_panel_…
Geenz Apr 28, 2025
65d70a8
Fix: ignore *pass-on* counters when detecting left-button grabs (#3990)
Sekkmer Apr 29, 2025
008f89f
More fixes - still a bit hacky but getting there.
Geenz May 4, 2025
3a4a2a5
Fix normals
Geenz May 4, 2025
e87c629
Transforms transmigrofied
Geenz May 5, 2025
dd74b36
Fix import rotation and UVs
Geenz May 5, 2025
4dedd13
Support bulk material uploads.
Geenz May 5, 2025
ac5d59b
calcDataSizeJ2C Adjust curve for more than 6 layers (#4018, #4020)
TommyTheTerrible May 5, 2025
89512d4
updateImageDecodePriority - Avoid Long Face Loop (#4019, #4021)
TommyTheTerrible May 5, 2025
629e56d
Make sure transformation matricies are actually setup. Start getting…
Geenz May 5, 2025
6e6e105
#3317 Fix full screen issue with Windows 11 24H2
akleshchev Jan 3, 2025
efdb86d
Fixes fullscreen mode in Windows 11 24H2
Hecklezz May 5, 2025
47a5c7a
Make sure we're pushing to the joints name set as well.
Geenz May 5, 2025
f68a5b2
Introduce workflow dispatch and mac functionality to qatest.yaml
AtlasLinden May 5, 2025
a30342a
Fix and optimize openjpeg J2C encoder (#4017, #4032)
chanayane May 6, 2025
4bb51a5
Add permissions to QA Workflow
AtlasLinden May 6, 2025
0c7179a
Merge branch 'develop' into atlas-qaworkflow
AtlasLinden May 6, 2025
0fb4e04
Merge pull request #4031 from secondlife/atlas-qaworkflow
AtlasLinden May 6, 2025
2c176c7
Resolve qatest.yaml concurrency group error
AtlasLinden May 6, 2025
469730f
Separate Build ID step for each OS
AtlasLinden May 6, 2025
d679e7f
Merge branch 'release/2025.04' into geenz/gltf-mesh-import
Geenz May 6, 2025
b3d1a1c
GLTF import texture upload
marchcat May 5, 2025
5e8f871
Apply 1/100th scale to the vertex positions
marchcat May 6, 2025
8c5df1a
Update Windows Build ID step to use pwsh syntax
AtlasLinden May 6, 2025
2c0e90a
Fixed World Map Find sending two requests and possibly showing wrong …
Hecklezz May 7, 2025
bb9adf3
Fix map search bug causing duplicate requests properly (#4037, #4040)
Ansariel May 7, 2025
147442c
Adjust install path for new repo name
AtlasLinden May 8, 2025
c1255a1
Clean up worldmap: Remove LLCtrlListInterface and reduce number of ge…
Ansariel May 8, 2025
84a122d
Merge pull request #4035 from secondlife/atlas-qaworkflow
AtlasLinden May 8, 2025
be0fff8
adjust which webrtc tracks are enabled when the avatar crosses a regi…
sethalves May 9, 2025
4cff699
reuse region variable instead of multiple calls to gAgent.getRegion()
sethalves May 9, 2025
8fb7dae
#4046 Fix hud vs inworld text color mismatch
akleshchev May 9, 2025
4b72e71
Merge pull request #4053 from secondlife/andreyk/viewer_4046
Geenz May 9, 2025
008c8f7
Modernize away possibly missing std::less comparator (#4063)
Ansariel May 13, 2025
2efe514
Make pulling weights per vertex.
Geenz May 14, 2025
ca81b40
Add virtual env setup step to qatest.yaml
AtlasLinden May 14, 2025
569bd9e
Merge branch 'geenz/gltf-mesh-import' into marchcat/gltf-mesh-texture…
Geenz May 14, 2025
33fb790
Added "verify repo is up-to-date" step
AtlasLinden May 14, 2025
b572bf7
Improve mesh scaling
marchcat May 14, 2025
3569cc1
Use correct model dimensions and bounding box rotation
marchcat May 14, 2025
a889740
Account for further Playwright dependencies in .venv
AtlasLinden May 14, 2025
479a23a
Update pre-commit hook to v5.0.0 (#4093)
marchcat May 16, 2025
bb76eae
Merge branch 'release/2025.04' into geenz/gltf-mesh-import
Geenz May 16, 2025
47d95f1
White space.
Geenz May 16, 2025
9346015
Merge branch 'geenz/gltf-texture-upload-merge' into geenz/gltf-mesh-i…
Geenz May 16, 2025
a9c75d8
More white space.
Geenz May 16, 2025
fdeef47
Merge branch 'geenz/gltf-mesh-import' into marchcat/gltf-mesh-texture…
marchcat May 18, 2025
875a418
#4080 Import GLTF skin data
akleshchev May 15, 2025
a3386f8
#4102 Allow selecting gltf models on mac
akleshchev May 19, 2025
1d40793
#4101 Handle boost::filesystem's exceptions
akleshchev May 19, 2025
a58adff
#4105 Support .gltf and .glb files in lookupLODModelFiles
marchcat May 20, 2025
55b1a16
Merge pull request #4079 from secondlife/atlas-qaworkflow
AtlasLinden May 21, 2025
a9e9c03
#4080 Rigged mesh support #2
akleshchev May 20, 2025
18182b1
Fix for crash when loading texutres on a GLTF mesh.
Geenz May 22, 2025
30b72ba
Make sure we're guarding texture uploads to the GPU properly
Geenz May 22, 2025
30aa14d
Make loading the asset into VRAM optional.
Geenz May 22, 2025
3670cf6
White space.
Geenz May 22, 2025
910a3a6
Merge pull request #4133 from secondlife/geenz/macos-texture-crash
Geenz May 22, 2025
fe84905
#4128 Crash on mInvBindMatrix
akleshchev May 21, 2025
6a92f87
Crash at LLVOVolume::isAnimatedObject
akleshchev May 21, 2025
9d3a03e
#4118 Allow Bulk Upload to initialize on Bulk Upload All option
maxim-productengine May 22, 2025
cee5469
Allow runners to operate independently
AtlasLinden May 22, 2025
0129106
#4110 Crash on LLScrollListCtrl::deleteSelectedItems
akleshchev May 20, 2025
38a643a
Merge pull request #4052 from secondlife/seth/viewer-1865
sethalvesLL May 22, 2025
f5d4d3f
#4109 Improve handling of GLTF transform hierarchy
marchcat May 22, 2025
d713be4
#4109 Use correct GLTF coordinate system rotation
marchcat May 22, 2025
71d543f
#4109 #4080 Apply coordinate rotation to GLTF inverse bind matrices
marchcat May 22, 2025
8a9f09e
#4109 #4080 Undistort GLTF rigged mesh in Z-up coordinate transformation
marchcat May 22, 2025
4faebc0
#4109 Remove workaround code
marchcat May 24, 2025
3eab945
#4109 Refactor LLGLTFLoader::populateModelFromMesh()
marchcat May 24, 2025
e8eac13
#4109 Refactor LLGLTFLoader::populateModelFromMesh() #2
marchcat May 24, 2025
83fa366
#4109 Fix inside-out geometry from negative scale transforms in GLTF …
marchcat May 24, 2025
d6419f7
#4109 Fix GLTF model extents calculation
marchcat May 24, 2025
b423900
#4105 Fix duplicate GLTF model instances causing upload errors
marchcat May 25, 2025
d342aa7
#4080 Rigged mesh support #3
akleshchev May 26, 2025
a364b5e
#4109 Add validation for non-triangulated geometry in GLTF loader
marchcat May 26, 2025
d9d8008
#4080 Rigged mesh support #4
akleshchev May 26, 2025
3f0aa33
#4109 Improve LLGLTFLoader::computeCombinedNodeTransform()
marchcat May 26, 2025
aeefc73
Add font buffer resetting in LLLineEditor.clear() (#4159)
Hecklezz May 27, 2025
0d99487
#4107 upload the model ignoring unsupported extension
maxim-productengine May 27, 2025
ab13373
#4157 Improve "Unable to upload material" error message
marchcat May 27, 2025
078cc9b
#4080 Rigged mesh support #5
akleshchev May 26, 2025
ea75bfd
Implement support for PRIM_MEDIA_FIRST_CLICK_INTERACT and autoplay fo…
DarlCat Apr 25, 2025
fe4f85e
Merge remote-tracking branch 'origin/main' into geenz/2025.04-to-develop
Geenz May 28, 2025
4c60231
#4080 Rigged mesh support #6
akleshchev May 28, 2025
0dbf2b4
#4080 Fix gltf crash when opening
akleshchev May 28, 2025
3375fb1
Merge pull request #4182 from secondlife/main
marchcat May 28, 2025
6c394f0
Enable the all MOAP option, forgot that was blocked out.
DarlCat May 29, 2025
be40d20
#4190 provide unsupported extension info in log
maxim-productengine May 29, 2025
136149d
#4191 skip loading model compressed with Draco
maxim-productengine May 30, 2025
bd7e79d
#4191 Crash opening a gltf model
akleshchev May 30, 2025
7aea88f
Use awk to make PV channel name
marchcat May 29, 2025
39625d1
Revert back to currently shipping release.
Geenz May 31, 2025
c88f5d2
Merge pull request #4176 from secondlife/geenz/2025.04-to-develop
Geenz May 31, 2025
6291e86
Adds missing ambient color blending to day cycle
Hecklezz May 28, 2025
4ae9b7b
#4203 show valid log info about 16 bit limit
maxim-productengine Jun 2, 2025
b322b3f
#4097 Fix crash in LLGLTFLoader::populateModelFromMesh()
marchcat Jun 3, 2025
acd4de6
#4080 Rigged mesh support #7
akleshchev Jun 3, 2025
11ece68
#4214 Support mesh splitting for meshes with more than 8 materials
akleshchev Jun 4, 2025
08f6f5c
#4214 Weights and Joints remap
akleshchev Jun 4, 2025
8dd3955
Merge pull request #4140 from secondlife/atlas-qaworkflow
AtlasLinden Jun 5, 2025
74d9908
#4214 Fix material upload
akleshchev Jun 5, 2025
2c35cdd
Follow-up fix for bb9adf3: Pressing enter while location spinners hav…
Ansariel Jun 6, 2025
3539852
Fix split model vertex/joint remapping to use correct model variable
marchcat Jun 9, 2025
689b829
#4170 Fix GLTF import missing mesh parts from transform tools
marchcat Jun 9, 2025
6924862
#4170 Follow-up: Optimize GLTF node hierarchy traversal
marchcat Jun 9, 2025
b20d10c
#4148 Skeleton Translation
akleshchev Jun 4, 2025
b4fb66c
#4170 Use GLTF scene definition for node traversal
marchcat Jun 9, 2025
4c529c8
Fix fast cache ignoring its time constraint (#4237)
Ansariel Jun 10, 2025
3c7dde5
Require PR descriptions (#4233)
bennettgoble Jun 10, 2025
4bbd631
#4148 Skeleton Translation #2
akleshchev Jun 10, 2025
b3fd05f
#4114 Improve GLTF mesh uploader log
marchcat Jun 10, 2025
41ef5b2
Resolve qatest.yaml invalid workflow error
AtlasLinden Jun 10, 2025
a0be1e7
macOS 26 build changes (#4239)
Geenz Jun 10, 2025
86a8f5a
Fixed adding skies to day cycle by ensuring mAbsorptionConfigs, mMieC…
Hecklezz Jun 7, 2025
fe10a83
#4214 Weights and Joints remap #2
akleshchev Jun 10, 2025
db95731
#4148 Skeleton Translation #3
akleshchev Jun 10, 2025
98abff9
#4248 Add safety checks to LLMeshSkinInfo::asLLSD()
marchcat Jun 10, 2025
48eb8a2
#4147 Joint override
maxim-productengine Jun 10, 2025
1132b19
#4114 Improve GLTF mesh uploader log 2
marchcat Jun 11, 2025
26adfd9
Resolve qatest.yaml invalid workflow error #4244
AtlasLinden Jun 11, 2025
2df0043
#4149 Empty Outfit folders cannot be moved
akleshchev May 23, 2025
03fa606
Crash at LLVOVolume::isAnimatedObject
akleshchev May 21, 2025
b8cc1f7
#4173 Crash at LLViewerInventoryItem::updateServer
akleshchev May 28, 2025
e2c76ec
#4147 Move mAlternateBindMatrices
akleshchev Jun 11, 2025
03b6d09
Use windows-latest runner for sign-and-package-windows (#4263)
marchcat Jun 12, 2025
8322a9a
#4147 Joint Overrides #2
akleshchev Jun 12, 2025
54660c8
#4147 Joint Overrides #3
akleshchev Jun 13, 2025
46aeaf4
#4242 Support splitting of gltf faces that are over 16bit limit
akleshchev Jun 17, 2025
bb45bfa
#4204 Fix GLTF texture loading to match DAE loader behavior
marchcat Jun 18, 2025
68dc091
#4204 Don't show material editor with model loader
marchcat Jun 18, 2025
5099401
#4204 Log embedded texture extraction failure
marchcat Jun 18, 2025
5bc9232
#4250 Crash uploading a dae model
akleshchev Jun 18, 2025
f532030
#4214 Revert and remake "weights remap"
akleshchev Jun 19, 2025
2083e65
#4204 Unused code cleanup (#4278)
marchcat Jun 19, 2025
1a6e328
#4204 Remove more unused code
marchcat Jun 19, 2025
feb4494
Fix loading name of banned residents in group bulk ban panel
Ansariel Jun 19, 2025
9e87757
#4257 Use filename as model initial name
marchcat Jun 23, 2025
781d9fa
Use latest release for changelog
marchcat May 31, 2025
c404b93
#4148 Fix collision bones
akleshchev Jun 24, 2025
4a40eaa
#4142 Add missed message
akleshchev Jun 24, 2025
e15a892
Merge pull request #4177 from DarlCat/hud-media-autoplay
Geenz Jun 25, 2025
8c9d0c6
#4142 Joint grouping and stripping
akleshchev Jun 25, 2025
895db14
#4291 Uploading without a .bin silently fails
akleshchev Jun 26, 2025
1557443
First pass at adding expanded frametiming stats to the viewer.
Geenz Jun 27, 2025
e2227b9
Make sure to reset the metrics after the first calculation.
Geenz Jun 27, 2025
db49947
Merge pull request #4302 from secondlife/geenz/frametime-metric-impro…
Geenz Jun 27, 2025
5888ae9
Fixes for first click moap
WolfGangS Jun 27, 2025
e4f2ed3
Make sure all moap option, includes 'all'
WolfGangS Jun 27, 2025
e3ce14d
Fix enum option name
WolfGangS Jun 27, 2025
6ce487f
Add helper functions.
Geenz Jun 27, 2025
45ca7fc
Merge pull request #4305 from secondlife/geenz/frametime-metric-impro…
Geenz Jun 27, 2025
6dd8a02
Merge branch 'project/gltf_mesh_import' into geenz/develop-to-gltf-mesh
Geenz Jun 27, 2025
13a8e3b
Reviewed changes
WolfGangS Jun 27, 2025
26e0ae1
Merge branch 'develop' into geenz/develop-to-gltf-mesh
Geenz Jun 27, 2025
480eae5
Merge branch 'develop' into media-first-click-fixes
Geenz Jun 27, 2025
2fdca60
Merge pull request #4304 from WolfGangS/media-first-click-fixes
Geenz Jun 27, 2025
ef7bfa5
Restore glTF mesh modifications.
Geenz Jun 27, 2025
6693fd0
Merge branch 'develop' into geenz/develop-to-gltf-mesh
Geenz Jun 27, 2025
a50a0e1
Fix LLCharacter base class constness.
Geenz Jun 27, 2025
06a9e45
Merge pull request #4308 from secondlife/geenz/develop-to-gltf-mesh
Geenz Jun 28, 2025
75db5e8
Revert "Fix LLCharacter base class constness." and restore improvemen…
Ansariel Jun 28, 2025
bca9ba9
Merge pull request #4310 from Ansariel/gltf-import-revert-getjoint
Geenz Jun 28, 2025
64b56d7
#4190 Provide unsupported extension info in log file
maxim-productengine Jul 1, 2025
fcd9a9e
#4242 Better issue logging
akleshchev Jul 1, 2025
230a8ca
private#435 Update GLTF Mesh Import's version to 7.2
akleshchev Jul 1, 2025
76dd938
#4315 Crash in GLTF uploader
akleshchev Jul 1, 2025
900516a
#4142 Fix missed index
akleshchev Jul 1, 2025
b79feb6
#4242 Clarify some operations
akleshchev Jul 2, 2025
55a79ec
#4313 Improved naming of textures
maxim-productengine Jul 2, 2025
5a0bbdc
#4242 Debug dump improvement
akleshchev Jul 2, 2025
10b787e
#4322 Upload Model button is sometimes disabled
akleshchev Jul 2, 2025
f1701d3
#4242 Make sure group array is initialized
akleshchev Jul 3, 2025
dd41001
#4334 Crash at getIsDynamic
akleshchev Jul 3, 2025
ecf220f
#4242 Debug dump improvement #2
akleshchev Jul 3, 2025
b6343d4
#4323 fix for transparent meshes
maxim-productengine Jul 4, 2025
6e65c38
#4319 Thread crashes not being reported to bugsplat
akleshchev Jul 7, 2025
b7dbe0e
#4290 Unresponsive viewer when uploading models
akleshchev Jul 7, 2025
60425f6
#4314 Fix model suffixes
akleshchev Jul 8, 2025
5a8b94b
#4324 sort indices before splits
maxim-productengine Jul 9, 2025
e77e74f
#4314 Follow-up: duplicate logic for mSubmodelID
marchcat Jul 8, 2025
edaf157
#4314 Fix model suffixes #2
akleshchev Jul 9, 2025
19ffeb6
#4357 Crash in LLMeshRepoThread::lodReceived
akleshchev Jul 9, 2025
3da4932
#4296 Crash at renderMorphMasks
akleshchev Jul 9, 2025
07d0fbe
#4294 Make upload order more deterministic
akleshchev Jul 11, 2025
63134f7
#4204 Cache processed materials
marchcat Jul 14, 2025
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 4 additions & 3 deletions .github/workflows/build.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -218,8 +218,10 @@ jobs:
prefix=${ba[0]}
if [ "$prefix" == "project" ]; then
IFS='_' read -ra prj <<< "${ba[1]}"
prj_str="${prj[*]}"
# uppercase first letter of each word
export viewer_channel="Second Life Project ${prj[*]^}"
capitalized=$(echo "$prj_str" | awk '{for (i=1; i<=NF; i++) $i = toupper(substr($i,1,1)) substr($i,2); print}')
export viewer_channel="Second Life Project $capitalized"
elif [[ "$prefix" == "release" || "$prefix" == "main" ]];
then
export viewer_channel="Second Life Release"
Expand Down Expand Up @@ -304,7 +306,7 @@ jobs:
AZURE_CLIENT_SECRET: ${{ secrets.AZURE_CLIENT_SECRET }}
AZURE_TENANT_ID: ${{ secrets.AZURE_TENANT_ID }}
needs: build
runs-on: windows-large
runs-on: windows-latest
steps:
- name: Sign and package Windows viewer
if: env.AZURE_KEY_VAULT_URI && env.AZURE_CERT_NAME && env.AZURE_CLIENT_ID && env.AZURE_CLIENT_SECRET && env.AZURE_TENANT_ID
Expand Down Expand Up @@ -455,7 +457,6 @@ jobs:
prerelease: true
generate_release_notes: true
target_commitish: ${{ github.sha }}
previous_tag: release
append_body: true
fail_on_unmatched_files: true
files: |
Expand Down
21 changes: 21 additions & 0 deletions .github/workflows/check-pr.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
name: Check PR

on:
pull_request:
types: [opened, edited, reopened, synchronize]

permissions:
contents: read

jobs:
check-description:
runs-on: ubuntu-latest
steps:
- name: Check PR description
uses: actions/github-script@v7
with:
script: |
const description = context.payload.pull_request.body || '';
if (description.trim().length < 20) {
core.setFailed("❌ PR description is too short. Please provide at least 20 characters.");
}
Loading
Loading