First batch of general doorframes, doorjambs, and models incorporating such #37
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.
This project has been worked on long enough that I do not remember most details of the work I did, notes made during process are the only way to find answers to any questions, short of breaking Time itself over the questioner's knee. :)
Note that the exterior Daedric ruin entrance model filename is not an error in this commit's work, but inherited from Bethesda jank.
Effort was made to preserve existing normals on edges meeting other tileset parts, as such some of these models cannot be considered final versions -- their set also needs worked on. Telvanni set, for example.
in_c_doorframe_01: Optimized collision (was 24 verts 22 tris, now 16 verts 18 tris), removed spurious use of nearly-invisible third texture, and re-unwrapped to remove seams.
in_nord_doorf_*: Booleaned vertical parts of the doorjam to remove clipping.
Restored vertex colors of in_nord_doorf_01 from otherwise identical in_nord_doorf_02 mesh.
in_c_djamb_plain/rich/rp_arched: Optimized collision (was 38 tris, now 30) and visual meshes. UV unwrap to reduce islands and seams. Replaced spurious use of plain version's plaster texture on hidden faces. Did not remove hidden face due to concerns over shadow calculations needing thickness in vanilla/MGE XE, may be unnecessary as the _square versions do not have them.
in_c_djamb_plain_square: Removed hidden faces, reduced UV islands, adjusted colision mesh to better cover visual geometry
in_c_djamb_stone_square: Improved UV unwrap as much as texture permits.
Booleaned stones together, reducing draw call total (from 3 to 2) and insignificantly reducing total face count (from 510 to 504).
Adjusted collision mesh to avoid any possibility of camera clipping through the mesh.
Some vertex coloring done in "gaps" between stones.
in_t_housepod_djamb_exit: Re-unwrapped the inner part of the doorjamb to move seam to area too darkened by vertex colors to notice. Now 12,425 bytes instead of 14,536 bytes, a ~14.5% decrease.
in_t_s_djamb_plain: Added a collision mesh (40 tris instead of 150) and reworked UVs into single island with less distortion. This results in a final size of 7,647 bytes instead of 7,113 bytes, a net ~7.5% increase.
in_t_housepod_01:
- Booleaned component meshes, tweaked topology, and combined trishapes, reducing tricount. (Was: 1,046 tris and 4 drawcalls; Now: 776 tris, 3 drawcalls.)
- Adjusted UVs to reduce distortion.
- Simplified and retopologized collision mesh (Was: 145 tris, now: 134)
Note: faces of floor hidden behind the doorframe/base"board" mesh left in place to ensure thickness for certain shadow algorithm options. Removing them drops tricount to 734, not as significant a decrease.
- Was 45507 bytes, now 35803. (21% decrease)
in_t_housepod_02:
- See _01. Collision: was 287, now 117. Visual: Was 1048, now 790.
- Was 72391 bytes, now 34771 bytes. (52% decrease)
in_t_housepod_01_hall
- See _01... mostly. I cut back on messing with UVs to avoid messing with visuals too much, though this leaves seams.
- Collision: was 389, now 347. Visual: Was 2717, now 2179. Drawcalls: Was 9, now 4.
- Was 119727 bytes, now 94778 bytes. (21% decrease)
in_t_housepod_01_hall_02
- See the non-_02 version above, aside from specifics like tricount and filesize.
- Collision: was 332, now 311. Visual: Was 2915, now 2229. Drawcalls: Was 8, now 4.
- Was 112169 bytes, now 99410 bytes. (21% decrease)
in_t_l_doorjamb_01
- Reunwrapped to reduce UV islands, visible seams, and the very slight distortion.
- Collision: was 148, now 66. File size reduced from 23831 to 17392.
in_dae_doorjamb_01
- Reunwrapped to combine UV islands.
- Light Booleaning, not because it was easy, but because I thought it would be easy.
- Partial weighted normals work -- wall portion not touched to prevent creating lighting issues.
- Collision: was 52, now 34. Visual: Was 432, now 396.
- Was 41680 bytes, now 26182. (37% decrease)
in_dae_doorjamb_load
- Corrected probably-spurious usage of extra texture on various faces
- Reunwrapped to combine UV islands and reduce seams (tho these were likely invisible due to poor lighting in Daedric ruins)
- Adjusted hidden vertices to avoid one portion of inner mesh from having edge poke through outer mesh
- Removed collision triangles which, due to door placement, will never be collided with but must be calculated against. Simplied further.
- Collision: was 48, now 36.
- Was 24877 bytes, now 18619. (25% decrease)
ex_dae_ruin_entry.max
- Created collision mesh. 351 triangles.
- Booleaned some components to avoid some clipping calculations, removed spurious use of a texture, removed hidden faces.
- Added LOD. Vanilla: 1608 tris; new LOD0 1757 tris, 5 drawcalls; LOD1 1131 tris, 2 drawcalls)
- Was 105188 bytes, now 173654. (65% increase. Worth it.)
in_dwrv_doorjam00
- Simplified collision mesh. Was: 135 tris, now: 58.
- Cleaned up apparent booleaning mistake. Minor topology tweak. Was: 230 tris, now: 218.
- Normals work, preserving existing normals along edges which meet other parts of tileset.
- Was 28890 bytes, now 19404. (33% decrease)
in_hlaalu_doorjamb
- Reduced collision mesh vertex count and number of trishapes. Resulted in same number of tris to calculate against (18), and now all of them get calculated against, but number is so low I expect the single mesh to cascade through will make up for it from CPU cache coherency. It also slightly decreased the volume in which the calculations are performed.
- Normals work, preserving existing normals along edges which meet other parts of tileset. Was barely noticeable.
- Was 8569 bytes, now 7877 bytes. (8% decrease)
in_hlaalu_doorjamb_load
- Copied new in_hlaalu_doorjamb over and deleted relevant faces from collision and visual meshes.
- Was 6983 bytes, now 6202. (11% decrease)
in_impsmall_doorjam_01
- Reworked UVs to reduce islands and decrease tx_imp_strip* texture distortions. Normals work.
- Dissolved 4 unneeded vertices at middle of edge sides (verified ingame)
- Visual mesh was 170 tris, now 166.
- Was 14669 bytes, now 13745. (6% decrease from previous MOP version)
in_r_l_doorjamb_02
- Slightly simplified collision mesh. Was 111 tris, now 88.
- Reworked UVs to correct severe texture distortion. Not that the new version doesn't have its own minor horrorterrors, but at least they're less noticeable.
- Normals work
- Removed hidden faces. Was: 464 tris, now 450.
- Was 44937 bytes, now 27793. (38% decrease)
in_r_s_doorjamb_01
- Simplified collision mesh. Was 36 tris, now 26.
- Was 8707 bytes, now 6781. (22% decrease)
in_redoran_hut_jamb_01
- Replaced collision mesh with one from in_r_s_doorjamb_01 and tweaked to suit. Was 66 tris, now 26.
- Corrected UVs on upper wall texture. Corrected vcols on upper wall arch to fix bright area.
- Was 16672 bytes, now 10142. (39% decrease)
in_redoran_l_doorjamb_01
- Simplified collision mesh. Was: 48 tris, now 26.
- Slightly simplified and retopologized visual mesh, and reunwrapped some UVs. Was: 430 tris, now 402.
in_strong_doorjam00
- Added collision mesh of 18 tris.
- Reunwrapped wood to reduce islands and increase texel density. Seams still present, but not any more noticeable than vanilla's.
- Was 4550 bytes, now 5194 bytes. (14% larger)
in_t_doorjamb_hall_small
- Added collision mesh of 44 tris.
- Shifted and welded UV islands together -- no visual change.
- Was 7127 bytes, now 7615. (1% increase)
in_t_manor_djamb_exit.nif
- Removed the names from the NiTriShapes and root NiNode. (0.5% decrease.)
in_redoran_hut_01:
- A lot of painstaking UV remapping to reduce islands and remove seams.
- Fixed vertex colors to remove an odd bright spot and reduce severity of overly-intense shadow where back wall nook met the blue part of the wall.
- Split collision into three parts to slightly reduce how many tris were being calculated against each frame, and simplified. Was 170 tris, now 163.
- Was 81846 bytes, now 10142. (87.6% decrease)
in_velothismall_dj_01
- Reworked UVs of jamb texture to reduce islands. Scaled UVs by 0.5 horizontally to match original's blurriness, as the sharpness of correct UVs stood out too much against the blurry wall. Somebody, I beg you, please fix the Velothi set.
- Added collision mesh, 18 tris.
- Reworked normals.
- Tweaked topology to reduce triangle thinness -- one side had two very thin ones indeed.
- Was 6779 bytes, now 4937. (27% decrease)
in_r_l_int_entrance_03
- Reworked UVs, normals (preserving edges where meeting other tileset pieces).
- Was 77824 bytes, now 53400. (31% decrease)