Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Nifs for Lights from Lights, candles, etc. List
08-17-2008, 05:00 AM,
#1
Nifs for Lights from Lights, candles, etc. List
I have been playing around a little bit with the nifs I made to lighten them up on the size and how the game handles them when playing and I think I have got them optimized to the best that they can get as far as that goes. They just need to be assessed as to any problems that I may have missed and whether or not they are good enough for Silgrad Tower. The breakdown on them is as follows:

Lights that have AttachLight and FlameNode nodes:

Light_Com_Torch_01 - Wall Torch, meant to be used with a torch ring
Light_Com_Torch_02 - Player usable torch
Light_Com_Torchring_Torch - Torch ring plus wall torch meant to mount on wall
Light_Com_Lamp_01 - Lamp stand with candle

Static models:

Light_Com_Torch_nofire - Static version of Light_Com_Torch_01
Light_Com_Torchring_NoTorch - Static torch ring without torch, lower ring hangs down
Light_Com_Lamp_01_NoCandle - Static stand for candle, can place any candle on stand in CS using same x,y coordinates

Edit: I forgot to mention, pics of all of these can be found in this thread.
Reply
08-17-2008, 07:24 AM,
#2
Light_Com_Candle_01
I made two more nifs for the Light_Com_Candle_01 light; one has a candle attached and the other is empty for those who want to add a different colored candle to the candlestick. As usual, the candle would use the same x,y coordinates as the candlestick. I am attaching a couple of pics of the candlestick w/candle so you can see it as well as the nifs. The one with the candle has the AttachLight and FlameNode nodes on it already.
Reply
08-17-2008, 09:10 AM,
#3
 
looks nice, how did you man the metal all "shiny" ?
Reply
08-17-2008, 01:12 PM,
#4
 
Quote:Originally posted by Tobi the Dane
looks nice, how did you man the metal all "shiny" ?
Probably a dark diffuse map with a fairly light specular map. I've found that metal works best like that. Making the diffuse map too light usually results in it getting washed out by the spec map.

Really good job on the textures ShadowDancer.
Reply
08-17-2008, 03:23 PM,
#5
 
Sorry my reply comes so late. I've been out of the loop for awhile, first on vacation and then confined Tongue to my inbox answering PMs. I've had the chance to check out your work now, and here is my feedback.

- It's a good idea to optimize models exported from 3D Studio Max with amorilia's nif optimizer script. The later versions of the script has a nifty shell extension allowing you to optimize a nif by simply right-clicking it and choosing 'Optimize with PyFFI'. I ran the script on your Light_Com_Candle_01 model and reduced the model's facecount by ~500.

- It's best not to use underscores in Oblivion filenames because the game uses that character to control certain behaviour and if one uses it without that intention strange things can happen. So to save trouble in the long run just don't use that character.

- Your models do not have tangent space information, which they must. It makes the normal maps display better and avoids a problem called the 'black screen bug' which affects players with certain video cards when they approach models without tangent space info. To add it, open the model in Nifskope and go to the menu option Spells > Batch > Update All Tangent Spaces. You'll know it's there because your meshes gain a node called NiBinaryExtraData.

- Some models, like Light_Com_Candle_01 for instance, have very high polycounts compared to their detail level. Open up the model in Nifskope and then zoom out the view window until the model is 4-5 centimeters tall. This is somewhere around the size players are likely to view the model in-game, when it's standing on a table, dresser or bookshelf. From this distance players can't make out that the model has such a high polycount. I would suggest just using two or three vertical steps (rows of vertices) for each disc on that model. You could use the faces left over in the facecount budget to for instance make the circular shape more rounded, or perhaps make the handle slightly bulbous (just some ideas off the top of my head).

- It would be ideal if you could create your own candle meshes as well instead of borrowing Bethesda's because one day we'll start moving our mod to The Elder Scrolls V and then we'll want to port your models, which would be hard if there are assets from Oblivion in them. Not saying you did anything wrong, because you didn't, it's just that if a model is 100% original then it's much more future-safe. The same idea applies to textures, so please try to avoid using Oblivion textures whenever you can.

- I noticed there were redundant ninodes in your models. It's not a big problem, it pretty much just makes them a bit harder to check out in Nifskope since one has to unroll more branches, but I think it has a small boost in effectiveness too. Sometimes you get redundant ninodes in the nif because you've added meshes to a group in 3D Studio Max. Ideally one should ungroup everything (if needed) then attach all the meshes to one another and - very important - when prompted, select the option Match Material ID to Material. That will merge meshes that share the same material to the same NiTriStrips block in the exported nif. I forgot which export setting controls the redundant ninodes, but I think these settings are the best:
[Image: th_3dsmax_nif_settings.jpg]

- I could also mention that I've come to think it's a good idea to piggyback all models on Bethesda models, first because Phitt said it made his meshbased collision less strenous on the FPS and second because I encountered a bug a few weeks ago that I couldn't solve by any other means than piggybacking my static on a Bethesda nif. I wouldn't say that I think piggybacking statics should be a rule, but if you encounter a problem with a non-piggybacked model you've made then it would be a good idea to do so as part of the errorchecking.



All in all you did a good job though and I'm confident your work will soon become a very nice addition :goodjob:

I think it would be a good idea to place the lights in the folder meshes\ST\Lights\Imperial. When you're ready to submit the final lights please place them there, and then create an esp that hooks up the lights in our main esm. Send a copy of the lights to me, so I can add them to the next BSA patch, and a copy of the plugin to sandor so he can merge it to our main esm. Thanks in advance.
¤ How to add images or files to your post ¤ Silgrad's UBBCode
My pet peeve: huge images in img code. I reserve the right to make any such image into a clickeable thumbnail whenever I see it.
Angel mired in filth
[Image: SignatureBannerRazorwing.jpg]
Reply
08-17-2008, 09:21 PM,
#6
 
Quote:Originally posted by Razorwing
- It's a good idea to optimize models exported from 3D Studio Max with amorilia's nif optimizer script. The later versions of the script has a nifty shell extension allowing you to optimize a nif by simply right-clicking it and choosing 'Optimize with PyFFI'. I ran the script on your Light_Com_Candle_01 model and reduced the model's facecount by ~500.

I will look into that immediately. I knew that 3ds max bloated the models some, but didn't know how to work around that. Thanks Smile

Quote:- It's best not to use underscores in Oblivion filenames because the game uses that character to control certain behaviour and if one uses it without that intention strange things can happen. So to save trouble in the long run just don't use that character.

Another good thing to know. I will remove the underscores from the next revision of the files.

Quote:- Your models do not have tangent space information, which they must. It makes the normal maps display better and avoids a problem called the 'black screen bug' which affects players with certain video cards when they approach models without tangent space info. To add it, open the model in Nifskope and go to the menu option Spells > Batch > Update All Tangent Spaces. You'll know it's there because your meshes gain a node called NiBinaryExtraData.

I knew about the tangent spaces being missing, but didn't know what exactly they were for. I was looking to get them working in game more than anything else (which led me to writing a tutorial on the CS wiki about how to get lights to work, and even using the FlameNode and AttachLight nodes as opposed to the billboard node because it makes the nif file size slightly smaller, without them crashing the CS) so I overlooked this when it didn't affect me in game.

Quote:- Some models, like Light_Com_Candle_01 for instance, have very high polycounts compared to their detail level. Open up the model in Nifskope and then zoom out the view window until the model is 4-5 centimeters tall. This is somewhere around the size players are likely to view the model in-game, when it's standing on a table, dresser or bookshelf. From this distance players can't make out that the model has such a high polycount. I would suggest just using two or three vertical steps (rows of vertices) for each disc on that model. You could use the faces left over in the facecount budget to for instance make the circular shape more rounded, or perhaps make the handle slightly bulbous (just some ideas off the top of my head).

Good ideas. One thing that has me baffled with 3ds max though is how to condense vertexes - as in make one vertex from multiple ones in the same object. If I try to use smooting on the meshes I come up with, i.e. meshsmooth, it invariably causes issues by reshaping the mesh in odd ways which I can only attribute to the vertexes being seperate. Is there a way to do this?

Quote:- It would be ideal if you could create your own candle meshes as well instead of borrowing Bethesda's because one day we'll start moving our mod to The Elder Scrolls V and then we'll want to port your models, which would be hard if there are assets from Oblivion in them. Not saying you did anything wrong, because you didn't, it's just that if a model is 100% original then it's much more future-safe. The same idea applies to textures, so please try to avoid using Oblivion textures whenever you can.

I didn't think about that, but it makes perfect sense. I have only used one texture from oblivion (I think) and that was because it seemed more like an indoor texture for iron, but I will browse through and see if I can find a suitable replacement. Out of curiousity, is there a way to be able to browse the ST textures in 3ds max? I have been importing objects and sampling the textures which is less than ideal for choosing meshes. I think I should be able to make a candle. If I have issues, I could always just use one of the ST candles instead.

Quote:- I noticed there were redundant ninodes in your models. It's not a big problem, it pretty much just makes them a bit harder to check out in Nifskope since one has to unroll more branches, but I think it has a small boost in effectiveness too. Sometimes you get redundant ninodes in the nif because you've added meshes to a group in 3D Studio Max. Ideally one should ungroup everything (if needed) then attach all the meshes to one another and - very important - when prompted, select the option Match Material ID to Material. That will merge meshes that share the same material to the same NiTriStrips block in the exported nif.

Makes sense. I will update those as well.

Quote:- I could also mention that I've come to think it's a good idea to piggyback all models on Bethesda models, first because Phitt said it made his meshbased collision less strenous on the FPS and second because I encountered a bug a few weeks ago that I couldn't solve by any other means than piggybacking my static on a Bethesda nif. I wouldn't say that I think piggybacking statics should be a rule, but if you encounter a problem with a non-piggybacked model you've made then it would be a good idea to do so as part of the errorchecking.

I am not sure what you mean by piggybacking onto a bethesda nif? I did notice some issues with the original models I made where the collision did horrible things with the frame rate of the player, but I did manage to fix that (I think) although I have no idea what 20 or 30 or more of the items would do in a small space (although 9 of the wall torches in a square, ~512 distance from the center in the CS, had no apparent effect that I noticed) when I worked out the darkness concept to counter a player's light spell or torch.


Quote:All in all you did a good job though and I'm confident your work will soon become a very nice addition :goodjob:

I think it would be a good idea to place the lights in the folder meshes\ST\Lights\Imperial. When you're ready to submit the final lights please place them there, and then create an esp that hooks up the lights in our main esm. Send a copy of the lights to me, so I can add them to the next BSA patch, and a copy of the plugin to sandor so he can merge it to our main esm. Thanks in advance.

:yes: I had already started to assemble them together in an esp file so that I wouldn't have to reimport them into the CS, but I was waiting to have nifs that were good enough for Silgrad before posting the esp. I figured it was easier for me to import them into an esp file while I was working on them than to have the importing done twice, and possibly causing an issue with them crashing the CS if someone else made a mistake while putting them into the CS.
Reply
08-17-2008, 09:30 PM,
#7
 
Quote:Good ideas. One thing that has me baffled with 3ds max though is how to condense vertexes - as in make one vertex from multiple ones in the same object. If I try to use smooting on the meshes I come up with, i.e. meshsmooth, it invariably causes issues by reshaping the mesh in odd ways which I can only attribute to the vertexes being seperate. Is there a way to do this?
You can weld vertices togther by selecting all of the ones you wish to weld and use the weld selected button. Use a setting of 0.1 if they are bang on top of each other, if they are further apart you'll have to play with the number. It defines the threashold for the distance which vertices will be welded.

You could also try the target weld function - select the vertices that you wish to weld and move them to the unselected vertex that you wish to weld them to.

Note that this applies to editable meshes, target weld works different for editable polies.

Also, I'd avoid meshsmooth unless you're sure that it wont bloat up the face count too much. Better just to use smoothing groups.
Reply
08-17-2008, 09:50 PM,
#8
 
Answered my own question, didn't read enough.
Reply
08-17-2008, 10:27 PM,
#9
 
Quote:Originally posted by ShadowDancer
I knew about the tangent spaces being missing, but didn't know what exactly they were for.

I didn't either until Ghogiel told me about them around a year ago. I added it to a few models and were astounded what a drastic positive effect it had on the way normal maps are displayed. One could say that without tangent space information the normal map doesn't do any good.

Quote:Originally posted by ShadowDancer
One thing that has me baffled with 3ds max though is how to condense vertexes - as in make one vertex from multiple ones in the same object. If I try to use smooting on the meshes I come up with, i.e. meshsmooth, it invariably causes issues by reshaping the mesh in odd ways which I can only attribute to the vertexes being seperate. Is there a way to do this?

As far as I know it's impossible to weld vertices in nifs the way you can weld them together in 3D Studio Max because when a model is exported to nif format it gets cut up into individual faces. It's still a good idea to weld vertices in Max though, dunno why off the top of my head but I recall an expert on the Niftools forum said so. But be careful if you're working on an imported model, like if you imported a freeware .3ds object, since welding vertices on imported models can cause severe problems with normals (i.e. random faces get turned inside-out).

3D Studio Max offers a lot of great tools for smoothing a mesh, but they all increase the facecount of the model which naturally is what one has to do to make a model look really smooth. Unfortunately it destroys the uvw map and/or makes the model very hard to map properly, but it works great for stuff like rocks.

But there is also an option to smooth a model without increasing the facecount or screwing up the mapping. By adding a Smooth modifier, and ticking the Auto Smooth checkbox, you'll smooth out the normals of the mesh. Normals are usually invisible and as far as I know control partly which direction a face is pointing and partly how light reflects off of the model. By smoothing them light bounce softer off of the surface.

A model can also be smoothed in this manner in Nifskope. To do that, right-click on the NiTriStrips block you want to smooth and choose these options in direct succession:
Mesh > Face Normals
Mesh > Smooth Normals (click the Smooth button)
Mesh > Remove Duplicate Vertices
Mesh > Update Tangent Space

I've attached test files if you want to check it out. The test1.nif was exported without the smooth modifier, test2.nif was exported with it. Rotate the viewport and check it out from different angles and you'll notice how test2.nif looks softer, corresponding to the softness in the max scenes.

Quote:Originally posted by ShadowDancer
Out of curiousity, is there a way to be able to browse the ST textures in 3ds max?

Sure. Have you extracted the bsa archive? If so, click on an empty material in the material editor. In the Maps rollout, click the button named None to the right of the Diffuse material slot. In the popup menu, doubleclick on Bitmap at the top of the list. Now you can browse to Oblivion\Data\textures\st\... and find one you like.

Quote:Originally posted by ShadowDancer
I am not sure what you mean by piggybacking onto a bethesda nif?

To make a piggy, find a suitable Bethesda nif and copy it to the folder where you exported your model. Open it in Nifskope, then delete the visual model plus the collision below the bhkRigidBody/bhkRigidBodyT block. You need to keep the bhkRigidBody block intact. Then open the model you exported in a new instance of Nifskope and copy the visual model + your collision over to the piggy. Hook them up, and you've piggybacked a model. The process is too complicated to explain here, but there's a great tutorial for it on the CS Wiki.

I couldn't say what caused the FPS problems in your case. It could be that you had too many light sources in one place? I've heard others say Oblivion has problems if too many orbs (light radii) overlap.
¤ How to add images or files to your post ¤ Silgrad's UBBCode
My pet peeve: huge images in img code. I reserve the right to make any such image into a clickeable thumbnail whenever I see it.
Angel mired in filth
[Image: SignatureBannerRazorwing.jpg]
Reply
08-18-2008, 01:00 AM,
#10
 
Quote:Originally posted by Razorwing
I couldn't say what caused the FPS problems in your case. It could be that you had too many light sources in one place? I've heard others say Oblivion has problems if too many orbs (light radii) overlap.

No, it was definitely something in the collision and the lights didn't make a difference since I didn't change any of the lights in the areas where I was testing the nifs. It literally was lagging the movement of the player when the player got next to the model or jumped over it. Redoing the collision took care of the issue with no other changes to the nif or the area where the object was placed. I am guessing it had something to do with the number of faces on the collision mesh since I reduced those and it stopped hanging when the player got near the objects although it still looks like a lot in nifskope.

I looked over the other things and I was indeed planning on welding the vertexes in 3ds max. I have already played with moving vertexes around in 3ds max on a remake of the AREntrance01 and fully understand how it can mess with the meshes/textures. I ended up making minor adjustments and moved the vertexes around successfully after it was textured, although they still need to be welded together.

I have extracted the textures, but I hadn't figured out how to look at textures in 3ds max, so that will help out a lot since I won't have to import an object just to look at a texture and use it if I like it. All in all, really helpful information that should make things a lot easier in the long run.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)