-
Notifications
You must be signed in to change notification settings - Fork 10
Beds. #65
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
BethOfDeath
wants to merge
1
commit into
mop-org:master
Choose a base branch
from
BethOfDeath:Morrowind.bsa_Beds
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Beds. #65
Conversation
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
- Split up collision mesh into three pieces of much more reasonable computation volume. Should help in the cramped interiors this is used in. - Combined the *checks notes* sixteen NiTriShapes the rope weave was composed of. Reduces 20 drawcalls to 5. - Reunwrapped metal rings to reduce islands. - Vanilla: 39447 bytes; new: 32264. active_de_bed_30: - Same as for _29 - Vanilla 39327 bytes; new: 32744 active_de_bed_01 - Split collision - Booleaned mattress and bedframe to remove clipping - Reworked topology of the underside of the bed to fix normals - Removed hidden intern faces from head of bed - Combined UV islands - Assigned the faces using the tx_wood_swirlwood_strip_01.dds texture to use the tx_wood_swirlwood_trim_02.dds texture's version of the same strip instead, and combined with the other NiTriShape using it. It's slightly downscaled, but not enough to notice, and saves a drawcall. An alternate solution would be to use the tx_wood_swirlwood.dds texture for more of the model, fix the woodgrain, and use just the tx_wood_swirldwood_strip_01.dds texture for the one bit that needs it, but I felt that was too much of a departure. - Created LOD doing exactly that, using tx_wood_swirldwood.dds for the entirety of the wood. - Vanilla: 30555 bytes; new: 47692 (+56%) active_de_bed_02 - Split collision - Reduced UV islands - Added LOD to reduce from 6 drawcalls to 3. - Vanilla: 32985 bytes; new: 40802 (+24%) active_de_bed_03 - Split collision - Booleaned mattress and bedframe to remove clipping - Reworked UVs to reduce islands and stretch. - Added LOD to reduce from 5 drawcalls to 2. - Vanilla: 23512 bytes; new: 41914 (+78%) active_de_bed_04 - Split collision - Booleaned mattress and bedframe to remove clipping - Reworked UVs to reduce islands and stretch. - Added LOD to reduce from 4 drawcalls to 2. - Vanilla: 19316 bytes; new: 36035 (+87%) active_de_bed_05 - Booleaned mattress and bedframe to remove clipping - Added edge loops to provide more vertices for better vertex lighting. - Added a few UV seams to reduce stretching and combined islands. - Added LOD to reduce from 4 drawcalls to 2. - Vanilla: 19320 bytes; new: 36749 (+90%) active_de_bed_06 - Booleaned mattress and bedframe to remove clipping - Added edge loops to provide more vertices for better vertex lighting. - Added a few UV seams to reduce stretching and combined islands. - Added LOD to reduce from 5 drawcalls to 3 and booleaned head-of-bed pieces to reduce clipping. Didn't feel like going back to do it for LOD0, as there's little measurable real-world benefit from this microoptimization on even mid-tier 2015-era laptop hardware. - Vanilla: 30132 bytes; new: 58403 (+94%) active_de_bed_07 - Reworked collision mesh. Was 32 tris in 3 trishapes and was calculated a significant volume beyond its visual model. While I didn't see the point of doing so for the previous models, I did change this. Now 52 tris in 2 trishapes and better conforming to visual mesh. - tx_wood_swirlwood_design was flipped and its mesh clipped into the head posts. I've fixed the latter, but left the former alone. - Reduced UV islands in the few places (headboard and footboard mirrored portions) possible. - Booleaned where possible to remove or reduce clipping. - Reweighted and stitched normals. - Removed hidden bogus faces from mattress. - Added LOD to drop from 7 drawcalls to 2. - Vanilla: 22233 bytes; new: 44518. (+100%) active_de_bed_28 - Split up collision - Reweighted normals - Replaced the tx_wood_weathered10 texture with more of the tx_wood_oldwood, as the faces in question all point directly down at the floor and are extremely unliked to be seen in-game. Combining the resulting UV islands causes the texturing to look similar anyway, on casual glance, in case of anywhere or any mods having the model knocked over. - Scaled UVs on side ropes 2x to better match the texel density of the woven rope texture. - Vanilla: 30184 bytes; new: 40928. (+36%) active_de_bedroll: - Combined bedroll pillow with main roll's collision model, then split the whole thing in half, to reduce the computation volume. - Straightened edge loops and UVs on bedroll to subtlely fix slight UV stretch more easily - Adjusted UVs of pillow and scaled up one end's UVs to match the texel density of the rest - Adjusted topology of the wicker base to fix normals and vcol blending. - Added two LODs to reduce draw calls and then tri count, as this model is used outdoors. - Vanilla: 30184 bytes, previous MOP: 13400; new: 28159. active_de_bed_17: - Split collision - Normals work and stitching - Cleaned up bedframe topology to improve normals; added edge loop along long side to hopefully improve vertex lighting - Cleaned up topology of matteress and added edgeloop around middle to, again, improve vertex lighting - Added an LOD to reduce from 6 drawcalls to 3. - Vanilla: 30551 bytes; new: 58568 (+92%) active_de_bed_08: - Same as other beds. - Added LOD reducing from 7 drawcalls to 2, because I'm honestly tired of of this at this point and adding a middle LOD which only reduces to 4 at a closer range is too bothersome right now. - Vanilla: 22290 bytes; new 45376 (+104%) active_de_bed_10: - Same as ever. Extra care with sharp edges and normals tweaking than usual, need to compare ingame. - LOD reduced from 4 to 2 drawcalls. - Vanilla: 19313 bytes; new 43304 (+124%?!) active_de_bed_11, 12, 13: - Same as previous, except it's from 5 drawcalls to 2. - For _12 and _13: copied new active_de_bed_11.nif and changed texture of blanket to match vanilla models, and saved to new NIF. - Vanilla: 19792 bytes; new 44078 bytes for _11, and a byte or two change for the others from the changed texture filename. active_de_bed_14: - Copied new active_de_bed_10 and changed blanket texture filename to match vanilla's _14. active_de_bed_15: - Usual work. Split collision mesh. - Vanilla: 19801 bytes; new: 38947 (+97%) active_de_bed_16: - Copied _15 and changed the blanket texture. No, it's not precisely identical -- the legs are moved over about 0.005723 m -- but close enough. active_de_bed_18, _19: - Copied _01 and changed blanket texture. active_de_bed_20: - Copied _06 and changed blanket texture. active_de_bed_21 through _25: - Copied _07 and changed blanket texture. active_de_bed_26, _27: - Copied _08 and changed blanket texture. furn_com_bed_01: - Reworked terrible, awful normals. - Combined blanket-covered pillows mesh with blanket-covered matress to remove overdraw and seams. - Booleaned tx_wood_cherry_engraving mesh to to remove clipping into tx_wood_cherry mesh. - Reworked UVs to combine islands. - Created two LODs, to drop from 6 drawcalls always to 6 extremely close-up, 5 near, 3 far away. - Vanilla: 32379 bytes; new: 84765 bytes. (+162%) furn_com_bed_02: - Split collision mesh - Added edge loops to mattress to correct texture distortion and improve lighting - Added edge loops to bedframe to improve vertex lighting - Reworked UVs to reduce seams and islands. Some, on the knobs of the bedposts, were pretty visible in Blender, but I'm not sure they would be in game. - Reworked normals, but there is a caveat. I am not sure what Bethesda was thinking with the little diamond-shaped bits of wood on the bedposts is supposed to be -- I _know_ mortoise-and-tenon joinery well enough to know that is not how it would be shaped, and there would be another piece through the tenon pinning it in place for safety. -- I suppose the diamond-shaped bits could technically be hiding large iron nails or massive dowels? An odd choice. - Added LOD to reduce from 5 drawcalls to 2. - Vanilla: 25979 bytes; new: 41919. (+61%) furn_com_bed_03: - Split collision mesh - Added edge loops to mattress to correct texture distortion and improve lighting - Added edge loops to bedframe to improve vertex lighting - Reworked UVs to reduce islands, but this resulted in significant change in appearance to the bedposts to correct brown lines from edges of texture being avoided. - LOD to add minor simplification of bedframe. Total tricount reduction to 65% of LOD0. - Vanilla: 19511 bytes; new: 36255 (+86%) furn_com_bed_04 - Copied over _02 in Blender, changed textures as needed, reworked UVs to combine newly combinable islands and fix texture direction. - Vanilla: 25503 bytes; new: 45534 (+79%) furn_com_bed_05: - Copied _03 and changed the mattress texture appropriately. furn_com_bed_06: - Same as with _01. - Vanilla: 31906 bytes; new: 79924. (+151%) furn_com_bed_07: - Copied _04 and moved stuff (and replaced single edge loops with two on width) around to match vanilla _07's width. - Split collision - Vanilla: 25510 bytes; new: 53269 (+109%) furn_com_bunk_01: - Fixed bad normals - Split collision - I think I added extra edge loops for better vertex lighting? - Vanilla: 21882 bytes; new: 54434. (+149% (!? I looked and at the time found insufficent reason for this to happen, it wasn't that many extra vertices and I tried to avoid having many islands.)) furn_com_bunk_02: - Copied _01 and changed the mattress texture
C3pa
reviewed
Jan 27, 2026
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 think the texture change on this bed is fine (imperceptible).
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
I made my bed, and way too many more. May others have the comfortable sleep upon them which I went without while working on these.
active_de_bed_29:
active_de_bed_30:
active_de_bed_01
active_de_bed_02
active_de_bed_03
active_de_bed_04
active_de_bed_05
active_de_bed_06
active_de_bed_07
active_de_bed_28
active_de_bedroll:
active_de_bed_17:
active_de_bed_08:
active_de_bed_10:
active_de_bed_11, 12, 13:
active_de_bed_14:
active_de_bed_15:
active_de_bed_16:
active_de_bed_18, _19:
active_de_bed_20:
active_de_bed_21 through _25:
active_de_bed_26, _27:
furn_com_bed_01:
furn_com_bed_02:
furn_com_bed_03:
furn_com_bed_04
furn_com_bed_05:
furn_com_bed_06:
furn_com_bed_07:
furn_com_bunk_01:
furn_com_bunk_02: