Jump to content
The Dark Mod Forums

peter_spy

Member
  • Posts

    3201
  • Joined

  • Last visited

  • Days Won

    109

Everything posted by peter_spy

  1. Thanks, Fingernail, I'm 100% with you on this one. This was a simplistic and fast example, and probably the most efficient use of texture space ever , since modelled panelling would require exploding this mesh into smaller parts on the UV, etc. etc.. To be more precise, the best practice would be somewhere in between my example and stuff we already have in TDM library, where number polygons can be higher than the shape seen ingame would suggest. Also the our approach might differ because of the background: in Dromed you didn't use models until it was absolutely necessary. It's kind of the other way around e.g. in Unreal engines, and in modern games in general. I can only guess that professional devs can't really choose between having an impact on CPU/GPU or memory – at least with all consoles up to X360/PS3 generation, they had to conserve memory, so their workflow is in part a result of that. Current gen consoles have a lot more memory now, so that might have changed a bit.
  2. No, I always preferred making meshes to using brushwork, mostly because in Thief 3 the geometry tools were shitty, and anything more complex caused errors in the renderer. Also, in Unreal engines, brushes had no smoothing options whatsoever. By the way, your example uses 2 or 3 different tiling textures, isn't it even bigger performance impact? Or at least memory consumption.
  3. I thought about it too, at least the middle section could have those bevels and insets left on geometry, and it still would be something like 200 triangles That was just the fastest way to make proper UVs (I really hate unwrapping in max). Making it with brushes wouldn't make sense, there would be a lot of micro-adjusting for corners and such, and all those surfaces would be treated as unique geometry, so that's even worse for performance. Here you have maximum of 12 models, all using one texture.
  4. You're absolutely right. Good thing is, the pivot can be placed on the edge of the brush wall that seals your level from the void, and there will be no errors.
  5. It's on by default in all game editors I've ever seen. I'm not even sure you can turn it of just from the menu. Well, except for this one I must have clicked that icon as soon as I saw the description (yes, hell yes!). Even though these models are relatively simple, they need to use pre-designed pivots. Originally the pivot was aligned with the plane in 0,0,0, but I had to move it so it doesn't intersect with the wall the mesh will be aligned with. I moved it away by just 1 u, so if you're not using that pivot, you'll have to bring down the grid to 1. For architectural models, that's really bad. This way I can use the whole set with grid of 16, and they snap to walls and to each other properly.
  6. Wow, that was weird. I can do it both with Rotate mode and the Arbitrary Transformation dialogue. Why wouldn't I want to have that option turned on by default? It's easier to manipulate objects with pivot placed in a proper pre-designed spot, so that it facilitates rotation and alignment with other meshes. This is rather basic functionality for meshes. Turning it off is for special cases, not the other way around. This way I wouldn't be able to place those meshes easily on a grid of 16, which I did.
  7. Of course DR cares where the pivot is. It's highlighted as soon the model is selected and also serves as the point for snapping, movement, or rotation, as in any other engine: Just some of them are, mostly those in modules folder. Those with flat faces and weird extra edges along them, that don't contribute to an actual shape of the model, just adding triangle count (and shadow mesh triangle count, probably). It shouldn't be a major performance issue; even idtech 4 can tolerate higher triangle counts. But having many different meshes like that may be a problem, sooner or later.
  8. Hi there! Since modular meshes are a thing in TDM, and I already saw some general misconceptions in the forums on how to make them, I thought I should show you one of basic techniques to make proper modular meshes, especially if you want to release them for others to use. First off, if you're new to the concept, have some preliminary reading: https://docs.unrealengine.com/udk/Three/rsrc/Three/ModularLevelDesign/ModularLevelDesign.pdf The document is old, but the principles of modular design stay the same. It's always about building the game world as fast as possible, while trying to save on polygons, textures and resources in general, and making the environment look as unique as you can. These seem like polar opposites at first, but with creative use of modular meshes you will reach that middle ground. Now, I'm not going to discuss my modeling techniques in much detail, since that's whole other topic, but we will stick to some ground rules: 1. Your wireframe has to be clean. I know this is modeling 101, but you can never stress enough how important it is. Essentially, your low-poly model has to be made with polygons (squares or rectangles) which can be divided into triangles when you convert it to a mesh. So, any piece rectangular flat surface should be divisible into 2 triangles. That doesn't mean you can't have triangles in your model. You can, they just won't be divided further. This is very simple mesh with 3 rectangular surfaces, in other words, it has 3 polygons. And this is how it should look like after export to mesh and in your game editor. As you see, everything is fine, there are 6 triangles. Now, in TDM module library I often see something like this: This is not a clean wireframe. You're looking at 14 triangles instead of 6. That's 42 edges instead of 18. While it may not be game-breaking now, it's definitely a waste of triangles. If you're going to have a whole collection of meshes built this way, you may be wasting processing power and lowering the overall game performance. Engines using lightmaps would probably have shadowing problems with this kind of wireframe. And that's how we move to rule number two, which is: 2. Save polygons whenever you can. Get rid of the faces players will never see. Use geometry only to convey believable shape of a model. Use high -> low poly model workflow and texture baking process to imitate complicated geometry with diffuse and normal textures. You don't need a thousand-polygon wall module, if you can fake it with normalmap and little visual difference. This is not only helpful in terms of performance, but it saves a lot of time at the model UVW Unwrap stage (it's easier / faster with fewer polygons to deal with). It also can be a design decision: whether it's a distant / skybox art or closer to the player, etc., etc. Now the rule number three, which is probably the most important of them all: 3. The pivot has to be moved to a place that allows most flexible use of a model, in as many scenarios as possible, and with grid set to as high number as possible. While this is not obligatory for unique objects, decorations and clutter, architectural meshes have to be cloned, moved, rotated and snapped to grid, as fast as you can. Typically, this depends on mesh dimensions and pivot placement. Since this all may sound very technical and abstract, let's get down to proper example. For my mission, I needed a wooden wall panel, something in the Builder's cathedral aesthetics. While browsing through many references, I found something appealing to my taste, but way above my modeling skills: I was also taking screenshots of Dishonored. I liked the Overseers' HQ, and I wanted to have something similar in terms of modularity: Notice that you don't need any special columns for outward corners, or to break up panels that are next to each other. I thought that the easiest way to achieve something similar would be to have a horizontal tiling texture with sections. Since I'm using 2048 textures as a base, I knew that 128 x 256 units will be enough for a wall panel, and I'll be able to divide it properly later. I didn't want the low-poly mesh to be complex, so I thought all I need is an upper trim section, the main section with inset panels, and the ground trim section. Technically, I could probably use one trim section and overlapping UVs to save on texture space, but I thought that is a bit too far Besides, any dirt layer on that would have the same spots or scratches on both trims, and that might look weird. This was the initial basic outline of my low-poly mesh. I thought the trim parts will be 16 u high, to fit better with overall proportions. Besides, if I'd changed my mind and decided that it's better to scale the model down to 64 x 128 u, it would have looked good as well. Now, since my drawing skills are basically none, I decided to model parts and decoration that would end up as baked texture and normal. I started with the middle section. Since the panel would be 256 u long, it was easy to divide it into 8 sections, 32 u each. I added thin strips between each section to make things a bit more interesting. Notice that I cut the strip by half on each end to make it tile properly later. I made a few adjustments and started adding decoration for the insets: Since there aren't many Builder insignia concept artworks, I tried making something on my own. It's kind of too close to hammerite stuff, but I liked it enough to leave it that way. Now the trims. Actually, one trim for the ground that is reversed for the upper section: The final model wasn't even high poly, medium poly at best. You're looking at 5200 polygons. I unwrapped the initial low-poly mesh (well, a plane with 3 setions), so it was super easy to bake the medium poly mesh onto it. I was using only half of the 2048 texture space. I could crop the texture to 1024 x 2048 and reposition UVs, but I decided that later I'd make a column, or another variation of this panel, so this space would not go to waste. This was kind of crucial moment and time when fun began. First thing I did was to check the pivot. I aligned it with the plane, moved it to the left side, and placed it on the ground. This way the model would be much easier to manipulate, whether it's moving around, rotating, or snapping to brushes or other meshes. Then I had to determine the final shape of the mesh and its possible uses. I applied the baked AO as bitmap to see whether the texture tiles (it did), and decided to tilt trim sections a bit, so it reflects the shape of medium poly mesh a bit more. I knew that players wouldn't see the bottom part of the mesh, but I wasn't so sure about the upper part. I decided to make the upper finish and used the trim part of the texture for it. Then I built a few walls to see how the mesh would look placed against them. That was when I realized my mistake. The pivot was in line with the middle section now, so, when I snapped it to a wall, the middle section was z-fighting with a wall. Duh! I selected the polygon and moved it 1 unit to the front. When I made sure that I can safely snap the mesh to walls and its clones, I proceeded to divide it to parts. As you see, this is still 128 x 256 wall panel, it's not really flexible. We need different length variations. Since I divided the medium poly into 8 even sections, I could slice the low poly mesh into chunks. Since having 8 different parts isn't that useful in the long run, I decided to clone the mesh, cut off one panel, clone the result cut another panel, etc. This way I came up with panels that are 224, 192, 160, 128, 96, 64 and 32 units long, respectively: The question is: do you really need that many panel variations? Typically, no. Four should be more than enough. You can always have a panel going through a wall, where player will never see it, so you don't need to be that precise and have all the length variants. Still, there was one thing even more important: corner pieces. I cloned the two-inset (64-unit) version of the panel to cut it in half. Then I rotated the "right half" 90° to the left to see the result. It was far from satisfactory. I knew that I'd need to align the upper and lower trims to form the corner, but I completely forgot that moving the middle section 1 unit to the front (to avoid z-fighting with walls) would create half a unit gap in the corner. This is how it looked after I aligned the vertices: This is where I could go to making textures and testing meshes in the editor, but there's also a problem of having inward corners. Many developers don't even bother with these, there will be some z-fighting of the upper part, in the small corner where meshes intersect. Not a big deal, but you can have such corners if you want as well. I felt like I had complete package, so I made some preliminary textures and material, then I begun exporting all pieces in .ASE format. All in all, I managed to create 12 variants of one mesh to cover the whole variety of its uses. After a few iterations of _d, _s, and _n textures, I came up with something like this: Edit: after getting some feedback I reworked the trims to give them more depth and proper silhouette, so the final result looks like this: This also demonstrates how important it is to bounce your ideas off someone or to show your work for peer review. A fresh look and healthy criticism can have very positive impact on quality of your work. I hope you'll find this useful while designing your own modular parts, let me know if you have any questions.
  9. Thanks Biker, I already added it to my notes, this will be written huge block letters To illustrate it better: This is what you typically do before export. Notice the actual pivot (big arrows) aligned with the move gizmo in 3dsmax. This is what you should not be doing, even though you do that for all other game engines: If you export your mesh and load your map, the lightning will look like this: Don't mind the mesh distortion, I added it to see whether subdivisions help anything (they make it even worse). There are two lights here, btw. and it looks like there are many more. And see this weird stuff at the top? Now, this is mesh with a pivot that didn't have any rotation/scene alignment. As you can see, axes are not aligned. And for idtech4 this is alright. In other game engines this piece would be imported horizontally. And finally, everything is works as it should. The disaster has been averted
  10. After several hours wasted, I finally found the source of the problem. Typically before exporting, you adjust mesh pivot for proper snapping, and you Align the pivot to the world (i.e. to current scene in 3smax), so the mesh isn't e.g. turned on one of the sides after importing it in game engine. YOU MUSN'T DO THIS IN DARKMOD. Looks like the initial rotation of the pivot is used by the idtech4 as a reference to calculate specularity and cubemaps for the polygons. When you align it to your scene in 3dsmax, you'll mess it up. You can still move the pivot, just don't rotate it. This is for ASE files btw., not sure how it works with LWO.
  11. Alright, box mesh works well with this material, while the plane mesh does not. That doesn't make much sense to me, since I already made objects like columns with open edges and some of their polygons deleted, as they're never visible. They work okay and cast proper shadows.
  12. Also, it's not that today's economy is only about giving customers what they want. Otherwise companies wouldn't rely on psychology of addiction and its studies to make consumers "love" brands from the earliest age possible, so any purchase is as emotional as possible. Food industry pours tons of sugar, fats, and salt to everything they make, to get "optimal ratio" of those ingredients for every kind of food, because that makes your brain scream with delight with every bite or sip. The general idea is to make children consumers and decision makers as early as possible, and to make adults as childish and irresponsible in their spendings. This has been going on since 1950s-60s. Our brains are simply not ready for that kind of addictive properties of, well, everything. There are corporate R&D departments and science teams basically making people's lives more difficult or miserable like that, just because their boss needs to see 10-30% YTY growth in his Excel spreadsheet.
  13. That shouldn't be a problem. There's something wrong with that meshes, because the same material put on brushes looks fine: At first I thought the planes might be too big for proper specularity, so I might need to more subdivisions, but then this happened
  14. I just had a few hours this month for editing, so I probably won't be able to solve this right away, but is it just me or IDTech4 doesn't like using overlapping UVs? The lightning looks pretty weird and the material looks metallic, even with proper specular. I'm guessing that's what's causing problems and those IES-like lights. After I fix this, I'm planning to write quick guide on how to design a basic flexible tileset for this wall panel. This is one texture and one mesh by the way, just split in sections and variants, to cover as many uses as possible. All with properly placed pivots, so you can place it in seconds. This was made with grid of 16.
  15. It's not that good, I mean definitely not as good as Dis1. It has its moments, but it falls apart as a whole. What about some mindless fun in new Doom?
  16. When I'll be changing mobo, I'll definitely take 8 or 12-core Xeon. I wouldn't mind that 14-core model, but it's ridiculously expensive. 4 core CPU with HT is enough for games now, but MR Render to texture function still uses CPU and that's like 20 mins per 2048 texture. xNormal is amazing for it's GPU use, but I have much better control over what I do in modelling software. Good thing MR was bought out by Nvidia and they're making steady progress with swithcing more and more tasks to GPU.
  17. I'd wait for the Prey demo at the end of the month. Here's another hour of gameplay footage too: Still, after Dishonored 2 fiasco I'll probably wait a month or two before getting it, unless the PC version is well-optimized.
  18. peter_spy

    Dishonored

    Only get Dishonored 2 if you have a decent gaming rig, with recommended specs or higher. Dishonored 1 runs fine even on older laptops. And Jim is right, get the GOTY edition, as DLC is even more focused and has better story than the campaign. Both instalments indeed use systemic design and immersive sim approach, but the stealth isn't main focus. Playing as chaotic psychopath is equally, if not more rewarding. There's a bit more balance towards that in Dis 2.
  19. I'd rather like to see Obsidian make Alpha Protocol 2 than any SE developer try again with Thief.
  20. peter_spy

    Slavery

    Free will doesn't matter that much in Christianity, not in its ultimate goal. Christianity became so popular, because with New Testament it was a religion of love and your personal relationship with god, who seemed actively interested in saving you. That was vastly different from Greek perspective, where gods were vengeful, often fought each other, and were often very cruel to humans. But the ultimate goal of Christianity is afterlife, and in this aspect Christianity is not that great. You have a god above who will judge you and decide your fate in the end. Sure, you have a set of guidelines, but even if you follow them carefully every day of your life, there's no guarantee that you'll end up in heaven. That's up to him to decide. Maybe you've misinterpreted the book, or didn't get the meaning of your role on Earth at all – if that's the case, sorry, gate's closed. Hell/purgatory's this way. That somewhat tragic aspect of Christianity seems to be "less advertised" or ignored (indulgences, church fairs), that might also explain popularity of this religion. The main focus is on a consolation in our miserable lives, and love, on a very personal (god – me) level. That helped slaves survive the time of adversity and made them feel more like persons, not objects used to perform hard work, like the whole world around wanted them to believe.
  21. Also, in a lot of those cases terrorists were not immigrants per se, but born in the country their parents went to; learned the language, got the education etc. It was more like a period of fascination with their religion, but gone wrong, often with outside influence too.
  22. I don't get how you include both of these camps in terms of opposition, or a threat, but terrorist attacks will happen from time to time, regardless of religion or backround. It's more about media coverage and visibility, and things like internet access. Whether it's a random psycho, IRA, or some other desperate immigrant, the thing is not to let our lazy brains attribute that to a whole nation or religion.
  23. Because it's easier to extend the idea of a couple, from heterosexual couples only, to other combinations, than embrace polygamy, in a Christian or post-Christian culture. Is that really not so obvious or hard to grasp?
  24. Do LGBT couples have any ground or safle conditions to speak up about their rights in Islamic or African countries? Obviously, was talking about Europe/Americas, as talking about everything simultaneously and mixing everything up won't lead us to any conclusion about anything ever.
  25. I think comparing polygamy to LGBT couples rights is somewhat ridiculous. The former was, at least in western culture, a dream of 70s flower-power era, fuelled by LSD, weed, and rage against the oppressive state. LGBT couples wanting to have families and children, and not being able to, is a sad, long-term reality.
×
×
  • Create New...