Jump to content
The Dark Mod Forums

Obsttorte

Active Developer
  • Posts

    6522
  • Joined

  • Last visited

  • Days Won

    111

Everything posted by Obsttorte

  1. You misunderstood me. What I've meant is that the code performs a relative complicated operation that has ALWAYS the same result but causes inaccuracies. So it would have made much more sense to just fill in the result instead of calculating something that you already know.
  2. that's goooooooooooooooooood EDIT: IMO the main error source is the quadratic operation that calculates the length of the new normal. This is especially strange as said operation results always in the value one. It seems to me that whoever had programmed this just took a math book and looked up the formula without having any idea what exactly he is doing there.
  3. OK, so I just wrote it down and see what happens here. The last formula is relatively simple, but written down in an not understandable way. Most of the operations performed there are completely unnecessary. Let me try to explain it. We have n: the OLD normal Q: the rotation matrix t : the translation vector d: the OLD distance As tels just wrote the new distance is: d2 = d - t*n What now stands there is: d2 = d*(Q*n)*(Q*n) - t*Q*n the term (Q*n)*(Q*n) is the quadrat of the new normal (that is one as it is a normal) anyways, as we have no rotation here Q is the identity and can be left away so we replace (Q*n)*(Q*n) with one Q*n with n and get: d2 = d -t*n It seems that whoever programmed the code wanted to leave the possibility to rotate the coordinate system (for example if the func_static is rotated itself) but even then the formula is unnecessary complicated, with rotation it would become d2 = d-t*(Q*n) but only if you rotate the system BEFORE you translate it, what makes no sense IMO rotating the system after the translation lead to the above equation (without the Q)
  4. If the code really uses double precision I doubt the normal will ever have such a high error. So we could just skip normalization . I just took a rough look but I thought that the only thing happens is to translate the origin of the coordinate system into the origin of the specific func_static. I see no reason why in this case the face normals must be reevaluated. A translation wouldn't touch those at all. Only an rotation would make changes to them. The only thing that should change is the "example point" in the normal form or in your notation the value d. It seems to me that this is a piece of code that is capable of doing much more then it necessarily have to. And yes, I'm pretty sure the normalization causes the errors here. (Maybe this sentence had been enough for an answer ) Btw.: What does the 4x4-Matrix consist of? Any 3D coordinate transformation has the form: new = rotation*old + translation (in the case of no rotation (new = old + translation)
  5. As you said correctly d in the equation you'Ve posted is the distance (to the origin of the chosen coordinate system). The question is how the code derives the distance to the new origin (the origin of the func_static) from the distance to the old origin (the point (0,0,0)) If this is done in an unlucky way it can cause errors. The good way: - You take the vector pointing from the func_static origin to any point of your plane and multiply it with the normal of this plane. The value you get is -d The bad way: - You take a point out of the plane like above and the origin of the func_static and calculate the distance The first method means you have three multiplications which results you some up. The latter means you have three multiplications (quadrations) which you sum up and then take the square root out of. This is the peace of code I'm referring to.
  6. If this problem only accours to func_static that have a size in any direction that is not not a power of two, then this could even be a simple rounding error bug, as the center of the func_static which mostly serves as its origin then maybe cannot be described exactly. If you can post the formulas used for the coordinate transformation here, I'm maybe able to tell you what goes wrong.
  7. Nice to have another mapper around. If you need something to encourage yourself, there is a contest running since this weekend Some advices: - You may not use the same textures on the walls AND the floor AND the ceiling (it looks a bit boring) - the doorframes may be a bit more detailed as they are rather thick. There are some models where you may wanna look at for inspiration - the overall design looks a bit blocky. You can use patches and decals to make the place look more organic. But maybe this is just wrong guessing due to the emptyness of those rooms so far - there are couple of models for supports for example you may wanna take a look at as they are a bit more detailed and save you some work. They can be resized via the "rotation" spawnarg I hope this doesn't sound harsh in any way. If you have questions you may wanna post in the "Newbie dark radiant questions" thread in the TDM Editors Guild I hope you'll accomplish finishing you FM. Good luck.
  8. Well, at least I thought so, as I barely remember to see such behaviour on some early maps, but I can be wrong, of course
  9. This behaviour thos apply to both worldspawn and func_static But as far as I recognized it in my own map files it's a bit random
  10. To give you a more serious answer: If you get everything at once you may not notice what exactly you've gotten. @ Sotha: Didn't you had a inventory bag in The Phrase Book? Well, if you want to reuse such a thing with a douzen (12, don't know how to spell that damn word) of stuff in it, it may be a better idea to give the player everything at once and make a pop-up note of what he got (like the little textes in the upper left corner in the training mission). @ Tels: Random loot on frobbing, gives me a nice idea for the contest . Something tells me that everything that comes up on contest will get usual in a year or so.
  11. I think that Doom3 only processes physics after force impacts. So the movement of a key should only be evaluated if it is hit by something, meaning that if you place it in the air, it should stay there until touched. But to be sure it is maybe the best to place a small brush underneath the key and give it a nodrawsolid texture, so the key is standing on a invisible small plate You should also be able to make your own key and use it's model as collision model (or a simiar model with a hole in it). This way you could really hang it somewhere. But this is not very performant if you do this with a large amount of keys or other objects.
  12. http://wiki.thedarkmod.com/index.php?title=TDM_Script_Reference#Events_by_Spawnclass_.2F_Entity_Type The lower part of the list is sorted by Entities. Everything that has to do with the player belongs to idPlayer (like the above function). AI is found under idAI. Even if you're not familiar with scripting you can take a look at this list and the explanations for the functions to get an basic idea of what may be possible and what not.
  13. Then we can hope to see something from you soon?
  14. If there are any other example map (except anguas sarcophagus) where the "texture replacement on export"-problem occures, you may post them here. Thanks a lot
  15. I can, of course (pm the link) btw.: I thought your doesn't work, but it does. This example map is a single room with a zombie in it. You're starting on the right, the zombie is in front of you. On the right there is an escape zone. You have two objectives: Objective 1: This is the one that fails when you get seen by the zombie Objective 2: is succeeded if you go to the escape zone the first objective is boolean NOT, not mandatory and ongoing the second is just a normal escape when you're finished objective for completeness. You can ignore it. EDIT: I made a little error here. The first objective must be mandatory, sorry.
  16. In "A night to remember" the ghost walks through walls and so but that's maybe scripted
  17. I'm not in you BT thread, sorry btw: the objective CAN be seen I can post you an example map or you can pm me a link to your map, what you prefer
  18. did that, but "Obsttorte" already existed (maybe my mistake) so the statement is from "Obstler"
  19. well, that would be the second suggestion than anyways, someone has to implement this
  20. I'll try that. Btw.: how did you change the output format without touching the source. I like the idea with the interim version. But for this to work in a not annoying way for the mapper (meaning he don't take notice) would mean to change the dmap process, so that it converts the interim version to the final version before dmapping or to change DR in a way that it always saves both versions but only loads from interim. Some Coders are needed.
×
×
  • Create New...