Jump to content
  • 0
Sign in to follow this  
z929669

Following CreateStaticTrees Workflow

Question

@sheson

Looking for some direction. I believe Draco's Alternative Aspen Trees does not support hybrid trees. I like the aspen models and have modified the textures. LOD tree trunks are white and pop in when close enough in game. I believe that I need to modify the models of the 'billboards' as the mod creator calls them in the downloads.

 

First: am I correct in my assumption that I must modify the models?

 

Second: I am having issues following your workflow ...

../DynDOLOD/Docs/trees.ultra/tools/DynDOLOD_CreateStaticTree.html

... and will post details on that once I determine if I am even on the right path ... or you can point me to previous Q&A on that in these forums.

 

Thanks

Share this post


Link to post
Share on other sites

Recommended Posts

  • 0

Thanks for the tips & direction ... I think I'm getting results now but may need to revise billboards diffuse a bit as well. Will post back once I have made the changes.

 

Also, under SSEEdit (xEdit), I don't get the option to "Split Atlas" when holding shift key on clicking "Generate LOD" for SSE. I don't see this mentioned in DynDOLOD_Manual_SSE.html so wondering about it. I just found the sizes manually, but it may be helpful to get this working if I make revisions to all billboards.

Share this post


Link to post
Share on other sites
  • 0

You need keep holding the Shift key until the LOD options window loads, including through any messages.

Ahhh ... subtle but effective. Thanks

 

EDIT: turns out this is of no use in my case, since I am using custom models. I thought that the like-named vanilla replacements would be referenced. Bummer.

Share this post


Link to post
Share on other sites
  • 0

So I'm a bit confused by use of internal vs external billboard NIF models. It looks like the INI defines what to use:

Billboard2=DynDOLOD_flat_2x2_lod.nif
Billboard3=DynDOLOD_flat_3x2_lod.nif
Billboard4=Internal
Billboard5=Internal
Billboard6=Internal

... and these values can point to 'eternal' NIFs ... is DynDOLOD_flat_2x2_lod.nif 'external' or 'internal'?
 
The "optimized" tree models I created as described in my earlier post are named like TreeAspen01_D10688CApassthru_lod.nif. Now these models are used along with the billboard textures as indicated by the log, fe:

TreeAspen02 [TREE:0006C9D5] meshes\landscape\trees\treeaspen02.nif
    Billboard found                                                                     <-- unclear on the meshes used for these or how to create them (see below)
    LOD4: textures\terrain\lodgen\skyrim.esm\treeaspen02_0006c9d5.dds using internal    <-- mesh rule set to use "Billboard" for this one ... I didn't create a mesh for this
    LOD8: textures\terrain\lodgen\skyrim.esm\treeaspen02_0006c9d5.dds using internal
    LOD16: textures\terrain\lodgen\skyrim.esm\treeaspen02_0006c9d5.dds using internal
TreeAspen03 [TREE:0006C9D4] meshes\landscape\trees\treeaspen03.nif
    Billboard found, 3D LOD found
    LOD4: meshes\dyndolod\lod\trees\treeaspen03_4e860f19passthru_lod.nif                <-- set mesh rule to "3D Static", so my optimized 3D mesh was used
    LOD8: textures\terrain\lodgen\skyrim.esm\treeaspen03_0006c9d4.dds using internal
    LOD16: textures\terrain\lodgen\skyrim.esm\treeaspen03_0006c9d4.dds using internal

... I set mesh rules differently for TreeAspen02 and 03 for testing purposes and comparing results in game (I still need to make adjustments to billboard textures and 3D LOD meshes to better align with full models).
 
I created the optimized 3D LOD meshes using DynDOLOD_flat_2x2_lod.nif as a base by making adjustments to the vertices in NiTriShapeData and copying over the BSLitingShaterProperty and NiTriShape blocks from the full model, editing strings, etc. The log tells me that my TreeAspen LOD objects are using this optimized 3D model, so my question is about the models used by the billboards and how to customize those to use my billboard textures (requires baked normals, or can they be separate?).

 

Does "using internal" mean that a billboard is using DynDOLOD_flat_2x2_lod.nif as it's model and that either the Object Bounds (vanilla tree) or the LOD TXT file (custom tree) modify this NIF vertices? So if I am understanding this correctly, I need to make billboard textures with baked normals, one for each plane and named accordingly (_1, _2), and DynDOLOD will use the accompanying TXT and DynDOLOD_flat_2x2_lod.nif as the model? If true, then why the need to point to an 'external' billboard model? I have read these sections a few times and am not sure that I am interpreting correctly.

Share this post


Link to post
Share on other sites
  • 0

The explanations in DynDOLOD-Trees.html should make it clear that the internal billboard is just "Billboard" in the mesh rules and not the same as "Billboard2", which is defined in the INI to use DynDOLOD_flat_2x2_lod.nif

 

"Internal" means to use the internal billboard and a *.nif files means is is using that "external" *.NIF file.

 

"Billboard found", means a billboard texture has been found.

 

"using internal" means the found and shown billboard texture for that LOD level is using the internal model.

 

If you want a LOD level to use the external NIF models defined as Billboard2=DynDOLOD_flat_2x2_lod.nif, then you need to set Billboard in the mesh rules for that LOD level. It is that straight forward.

 

Yes the dimenions from the billboard txt or object bounds as fallback are used to set the vertices of the 2D planes for the model. Obviously this applies to the internal and external models.

 

The external model allows users to customize things in the via a template NIF, which the internal model does not allow. Like easily adjust normal vectors, vertex colors etc. number of planes. Historically there was only the internal model in the beginning and the external option was added much later a couple years ago.

 

You might not want to spend too much time trying to create billboard diffuse and normal map textures manually as explained in the docs as it is a cumbersome process. There will be a new TexGen beta version "soonish" that will be able to render billboard diffuse and normal map textures automatically. No ETA, sorry. It could be a few weeks or a couple months.

Share this post


Link to post
Share on other sites
  • 0

OK, so "Billboard(1)" must use some mesh, and I assume it is the 2x2 mesh provided, whose vertices are modified by the TXT file. Billboard2 must be an explicitly-created external mesh then, and the default INI just refers to the 2x2, since it's a good starting point?

 

The automation sounds great, but the manual effort is appreciated, since it helps me to understand what's going on (If I can understand it :P). I'll keep messing around with it and let you know where I go.

 

Thanks for the continued support.

Share this post


Link to post
Share on other sites
  • 0

No. "Billboard" does not use an external NIF. The required data is build internally in LODGen.exe. There is no NIF parsing involved.

 

Billboard2/3/... uses what is defined in the INI. 

 

The Internal Billboard is not the same as using DynDOLOD_flat_2x2_lod.nif

Share this post


Link to post
Share on other sites
  • 0

No. "Billboard" does not use an external NIF. The required data is build internally in LODGen.exe. There is no NIF parsing involved.

OK, so it does use some generic mesh 'internally' defined in DynDOLOD? It can't just be a texture standing up in game, right?

 

Billboard2/3/... uses what is defined in the INI.

So I think I understand that the 2x2 & 3x2 meshes defined in the INI are 'external' defaults, correct?

 

The Internal Billboard is not the same as using DynDOLOD_flat_2x2_lod.nif

So using the 2x2 for billboard applies when setting 'Billboard2' in mesh rules? If so, how does one get two x/y planes set to the mesh planes with accurate L-W dimensions? By file name like: TreeName01_XXXXXXXX_#.dds, TreeName01_XXXXXXXX_#_n.dds vs TreeName01_#_XXXXXXXX.dds, TreeName01_#_XXXXXXXX_n.dds ... can two different, like-named TXT files be used to define coordinates for the two unique plane billboard shots?

 

EDIT: disregard this last question. I see that the billboard example shows the naming convention and TXT 'Depth' spec in ..\DynDOLOD\Docs\trees.ultra\examples\2-textures-billboard-example\textures\terrain\LODGen\skyrim.esm\

 

... but I'm not clear how ShiftX/Y are determined from the defined object bounds (ShiftZ is straight forward as simply the Z1 value):

[LOD]
Width=434
Depth=358
Height=635
ShiftX=17
ShiftY=1
ShiftZ=-273
Scale=1
Model=Landscape\Trees\TundraDriftWoodTree01.nif

Share this post


Link to post
Share on other sites
  • 0

The internal billboard is a data construct (think of classes containing variables and methods that contain the raw data for vertices, UV coords, shaders etc. and what to do with them) in LODGen.exe while it generates object LOD.

 

Correct, the DynDOLOD.INI contains the default settings and definitions after unpacking from the Standalone archive. This ensures third party mods giving specific instruction to set Billboard2 or Billboard3 will always have the desired result.

 

Setting Billboard2 for a LOD Level in the mesh rules means the object LOD model for that tree uses the DynDOLOD_flat_2x2_lod.nif model, since it is assigned to Billboard2= in the default DynDOLOD INI.

 

From DynDOLOD-Trees.html:

 

See the existing DynDOLOD_flat_2x2_lod.nif for how vertices are defined with coordinates 0.0 and 1.0 respectivly. The values will be multiplied with the width for X, depth for Y, height for Z to scale and the values shiftX, shiftU, shiftZ added to them in order to translate the coordinates. The width, depth, height, shiftX, shiftY and shiftZ values are defined by the Object Bounds of the tree base record or the optional txt of the billboard.

 

That means Width= is used for the front/back and Depth= is used for left/right plane. If no Depth is defined in the billboard txt it will use the object bounds.

 

_1.dds, _2.dds replaces .dds of the billboard texture filename. There is only one txt file per billboard. There is no look up for _1.txt or _2.txt.

 

See the included '..examples\2-textures-billboard-example\textures\terrain\LODGen\skyrim.esm\' folder for how to setup a 2-side billboard with normal maps.

 

The example txt contains the depth value and the texture files show the correct use of _1.dds and _2.dds

 

Again, billboard diffuse and normal map textures for front and side view can "soon" be rendered automatically with TexGen. That process will create a txt file with correct dimensions from full model NIF not from sometimes wrong object bounds, too.

Edited by sheson

Share this post


Link to post
Share on other sites
  • 0

@sheson

 

There doesn't seem to be a way to do as instructed in ../DynDOLOD/Docs/trees.ultra/DynDOLOD-Trees.html#5:

 


The process to generate normal maps is very similar. In NifSkope, shine full sun but no ambient light onto the model from top, bottom, left, right to make 4 screenshots.

There is no way I can see to set a lighting direction on a model. It's always from 'top' it seems. Nor can I find any way to side-view models from angles necessary for screens of the 3x2 planes (0/60/120/180/240/300). Default front/side views only give me 0/90/180/270, which is fine for the 2x2 but not the 3x2.

 

EDIT: Looks like I can manually type in rotation degrees for 'R' on the main branch (assuming yaw/pitch/rotation is set here and in degrees). Not sure if that's right. Must be a similar way to do lighting direction?

Share this post


Link to post
Share on other sites
  • 0

I've stepped away from working on 3D statics, since I'm having mesh issues still.

 

So I am testing Billboards now. I have defined both Billboard and Billboard2 in ..\textures\Terrain\LODGen\Skyrim.esm\ ... one TXT file defines all. Names like:

  1. TreeAspen01_0006A9E6.txt
  2. TreeAspen01_0006A9E6.dds (Billboard) - according to logs, mesh rules using 'Billboard' DO NOT use this texture but rather the next one
  3. TreeAspen01_0006A9E6_1.dds (Billboard2; front view; identical to #2) - according to logs, mesh rules using 'Billboard' use this texture and not the previous
  4. TreeAspen01_0006A9E6_1_n.dds (Billboard2; front view; created using xNormal as described in doc) - no idea if it's used
  5. TreeAspen01_0006A9E_2.dds (Billboard2; side view) - no idea if it's used
  6. TreeAspen01_0006A9E_2_n.dds (Billboard2; side view; created using xNormal as described in doc) - no idea if it's used

Mesh rules defining 'Billboard' show in log (why not using #2 above?). When mesh rules define 'Billboard', I didn't think the following applies (assumed this applied only when Billboard2 is set):

See the existing DynDOLOD_flat_2x2_lod.nif or DynDOLOD_flat_3x2_lod.nif for how each plane is a seperate shape and defines a different texture, numbered _1, _2, _3 to be able to define different billboard textures for each plane. If only one billboard texture is found in the load order it will be used for all planes. If a _1.dds texture is found, then all textures with the same name like _2.dds, _3.dds etc. are added to the texture atlas and used for the billboard. Any billbord with the same file name but without a number indicator is ignored. This feature may still have bugs or issues - ask in the official forum for help or in case of problems.

Log example from 'Billboard run:

TreeAspen01 [TREE:0006A9E6] meshes\landscape\trees\treeaspen01.nif
    Billboard found
    LOD4: textures\terrain\lodgen\skyrim.esm\treeaspen01_0006a9e6_1.dds using internal
    LOD8: textures\terrain\lodgen\skyrim.esm\treeaspen01_0006a9e6_1.dds using internal
    LOD16: textures\terrain\lodgen\skyrim.esm\treeaspen01_0006a9e6_1.dds using internal

Mesh rules defining 'Billboard2' for these trees, log shows (why nothing for #5 above? do I assume the above instruction applies, and the log just doesn't show that detail?):

TreeAspen01 [TREE:0006A9E6] meshes\landscape\trees\treeaspen01.nif
    Billboard found
    LOD4: textures\terrain\lodgen\skyrim.esm\treeaspen01_0006a9e6_1.dds using dyndolod_flat_2x2_lod.nif
    LOD8: textures\terrain\lodgen\skyrim.esm\treeaspen01_0006a9e6_1.dds using dyndolod_flat_2x2_lod.nif
    LOD16: textures\terrain\lodgen\skyrim.esm\treeaspen01_0006a9e6_1.dds using dyndolod_flat_2x2_lod.nif

... I assumed that mods could be packaged with all (coexisting) DynDOLOD resource types for the different billboards, meaning I thought I could include all assets in same location as described in the 1-6 list at top of this post ... ?

 

Also, all billboards are too bright in game in all weathers with direct sunlight and look painted in foggy weather (look good in cloudy weathers). I know about the 'brightness' settings in the DynDOLOD INI, but I want to avoid changes to the default so that others can use it without special instructions. I suspect it's the 'super' normal maps made from 4x lighting angles in xNormal. Add transparency to normals or decrease opacity? Diffuse are already a tad darker overall than source.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.