Jump to content

Wulfie Reanimator

Resident
  • Content Count

    1,125
  • Joined

  • Last visited

Everything posted by Wulfie Reanimator

  1. I don't think that's what she meant. There are tons of ways to programmatically create mesh, but not with LSL.
  2. Without seeing the logs and/or the in-world script's code, this is just a blind guessing game. You probably know that llHTTPRequest has a HTTP_BODY_MAXLENGTH that determines where the truncation would happen if the request was longer. If you're running just an API server and don't control the scripts you're getting requests from, it's probably just someone's broken script you're seeing.
  3. Hopefully you're also informing the SL creators directly about this. Linden Lab won't/can't do anything.
  4. LSL's operator precedence is pretty in-line with other languages, in fact it's almost identical with C# (my other language).
  5. Hey friend, you might wanna actually read that, it's very useful and even I endorse it!
  6. For a more clear example from that thread: Second Life: Utherverse (same shirt): Second Life: Utherverse: But I am skeptical about how much of this is "stealing" (the first one is most likely ripped) and how much is just "copying." Based on this and some other articles: https://utherverse.fandom.com/wiki/Clothing_Design All Utherverse clothing is just a flat texture (similar to SL clothing layers) where the UV layout is different from that of Second Life. This means that no mesh clothing can be "stolen" as the creation process is entirely different, even if the design is the exact same. (The closest you can get to is taking a screenshot and editing that until you fit everything on the other UV.) This also kind of applies to clothing layers ripped from Second Life. The Utherverse texture layout is still different, so it requires some work to get it to look kind of right, with warping and seams. Here is an example of the torso texture I found.
  7. Don't worry about the reported memory usage. Scripts, by default, only report the maximum amount of memory they could potentially take, which is 64KB per script. The used amount is generally a lot less but you cannot find this out without being able to edit the script. There is no specific limit to "how much is too much," because it depends on the overall amount of scripts in the whole sim and the type of sim. If you have 40 scripts but the sim has 4000 scripts in total, you're almost certainly the least of the problems. That said, 40 scripts is absolutely not bad for a parcel.
  8. If you turn off LSL preprocessor, you'll be able to compile the script since it won't try to look for the #include file. The post-processed text (after adding the #include contents) is already in the script.
  9. The summary is roughly: Even the simplest script causes lag in large numbers, no matter how "low-lag" it is. Scripts contribute to script lag even if they are doing literally nothing. There is no practical solution to this problem, it is best for the user to just do nothing. The only way to turn the scripts off completely is to select the object and go to.. Build > Scripts > Set scripts to not running But this requires modify permissions to the object, so it cannot be done for every object. This also requires you to turn the scripts back on manually before you can interact with them again. And for this to be noticeably effective, it needs to be done to hundreds of scripts at the same time, maybe thousands depending on how many scripts are in the sim.
  10. See operator precedence: http://wiki.secondlife.com/wiki/LSL_Operators The -= and >= operators share precedence, so they will be evaluated "at the same time" from right to left. // original line: while (num -= 2 >= 0 && !found) {...} // what happens: while ((num -= (2 >= 0)) && !found) {...} // (2 >= 0) becomes TRUE aka 1 while ((num -= (1)) && !found) {...}
  11. This is still absolutely relevant when making models for SL because tris (and especially quads) make the model the easiest to work with. If you have ngons (>4 face edges), the automatic triangulation might produce bad topology (particularly relevant with lighting/shading. Those numbers are, of course, very rough estimates and only the necessary amount should be used based on the item and its size. You wouldn't make a small pencil with 1500 tris because Unity said so. But regardless of what the numbers actually should be, the problem is that things like the Belleza body is naked and headless but over 307'000 triangles. Even if the model was unchanged, better design choices (detachable parts instead of forcibly including even unused parts in the same object) would reduce the amount of garbage taking resources away from each viewer trying to render the scene. Even the popular Catwa Catya head is over 45'000 tris on its own. A robe from Moon Elixir is over 113'000 tris. 3D models are actually very compressible. A high-density mesh takes up significantly less memory than a single 1024x1024 texture. In fact, here's some Demon Hooves from Sweet Thing as an example. They cover both legs from the knee down, almost 8K triangles but the amount of video memory the mesh takes is 1KB. (A single blank 32x32 texture takes 3KB video memory. Fully textured, including materials, the Demon Hooves take up 16KB video memory.) The Belleza body takes up 9728 KB or 9.5 MB memory excluding textures. The textures add 57'860 KB or 56.5 MB. I believe the video memory is roughly the same as the download size, maybe a few bytes (B, not KB) smaller. As for literal file size, that depends entirely on the file format. An XML (human-readable text format) for an 8K model with textures could be around 30KB on your HDD, but there are much better formats that would take up much less space. You can check these numbers with the Inspect window. "TMem" is texture memory, "VRAM" is video memory in total. VRAM minus TMem = Mesh memory. This to say, the memory bandwidth of a mesh is barely an issue compared to the cost of rendering it. (Especially in the case of VR, because everything MUST be rendered twice per frame, for each eye.) Just because you didn't know about it doesn't mean "very few professionals are aware of it." If you're gonna keep saying "professional," you'll have to define who you consider to be a professional. SL creators might technically be professionals in the sense that they are doing it as their job, but to me the word also implies in-depth knowledge in the field they're working in. A professional designer in game development is generally given a triangle budget to worth with, so the moment they're done sculpting their 3 million poly model or exporting their 150-600K outfit, they know for an absolute FACT that it needs to be either retopologized (jeez that's a hard word) or heavily reduced to be usable in the game. But I agree, it's much easier to find "how to model" tutorials that aren't concerned with optimizing the mesh for real-time rendering.
  12. I just finished adding some example articles to my post that demonstrate what this "information" would look like. Never mind that when you actually try to talk to the biggest offenders, they scoff at you with "it's MY ART, I decide what's good, I don't care what you think." when their "art" is literally detrimental to everybody's experience, even if those affected don't realize it. They might even be in denial and say something like "I paid for this, it is high quality", "maybe you should just get a better computer then", or "I don't care."
  13. I don't understand what you're attempting to say here. The users are "allowed to make informed decisions." What about the follow-up sentence? What does that imply? Are you saying that users can't make informed decisions? Does that mean the average user shouldn't be allowed to upload mesh into SL? Edit: Or are you saying LL should be the one to explain what's bad? I would agree with that in principle, but I find it hard to imagine LL has the resources to write out a very long article on what makes a "good model," considering how much of an open platform SL is for different ideas. (As open as the rest of the gaming industry as a whole. More on that below.) I don't know how much of that is paraphrased or what they were comparing SL to, but SL is absolutely identical to a regular game development environment. Making LODs and physics models by hand is a real thing -- even if some of it can be automated like in SL -- and other games can easily have thousands and thousands of assets being rendered at once. There is no distinction between SL and any other 3D game when it comes to asset creation. Paraphrasing these articles: https://docs.unity3d.com/Manual/ModelingOptimizedCharacters.html https://docs.unity3d.com/Manual/HOWTO-ArtAssetBestPracticeGuide.html https://gamedevelopment.tutsplus.com/articles/3d-primer-for-game-developers-an-overview-of-3d-modeling-in-games--gamedev-5704 https://blog.viromedia.com/https-blog-viromedia-com-asset-pipeline-optimizing-3d-models-ar-vr-arkit-arcore-d0fb61627aaf "Poly-count is important. Keep your model in tris and quads." "Too many triangles/polys is bad. Reduce them as much as possible while keeping the silhouette intact." "Remove faces the user can't see." "Don't remove too many though." "Use as few materials as possible." "Make LOD models by simplifying your model or removing parts of it." "I search for models under 10K triangles." - Viromedia "For desktop platforms the ideal range is about 1500-4000 polygons. [1500-8000+ triangles] Reduce if necessary." - Unity "A model needs to be optimized/rebuilt especially when sourced from high-poly applications. [Marvelous Designer, Zbrush, Poser]" - Unity All of this is the exact same, general advice LL would write on a wiki page. It offers few if any specifics that are highly subjective. And when everybody is making their own highly subjective models that might fit for their needs, we end up with the situation we are in now where someone's wide-spread "art" plagues SL with bad FPS for everyone, even those who don't want to have anything to do with it. Edit 2: Some "big title" numbers (keep in mind that these are for highly controlled environments with focused efforts) : https://gematsu.com/2014/12/final-fantasy-xv-detailed-famitsu "Each character made up of at max 100,000 polygons. The inner hair alone has about 20,000 polygons, which is five times the previous generation." https://www.technobuffalo.com/horizon-zero-dawn-eyes-on-preview-post-post-apocalyptic "Thunderjaw is 80 feet long, 33 feet wide, [...] 550,000 polygons." https://www.dualshockers.com/the-numbers-of-killzone-shadow-fall-revealed-40000-polygons-per-character-683334-building-blocks-and-more/ "Each character was made of about 40,000 triangles, with four times as many vertices and four times as large textures as in Killzone 3." https://www.artstation.com/artwork/1b2V2 "Highest LOD is 23K triangles." Since there is no way to automatically analyze an object and determine if it's "ready-made" or "unoptimized," the best alternative is to -- again -- close to doors on uploading mesh from the vast majority of people, including most of the biggest body/clothing brands on SL. The only other alternative change that makes sense is to make the restrictions even harder. Fewer vertices, lower resolution textures.. there would be a revolt and it could be ultimately worked around anyway, potentially making things even worse. Okay, I actually agree. It just woosh'd over my head at first.
  14. @chaosninja7 & @Kyrah Abattoir I don't think that expression quite fits this context at all, lol. (Unless you're referring to some alternative meaning I don't know of. Or you're intentionally re-purposing it.) As for SL being optimized or not, it's both true and not true. SL is able to run quite well under what should be normal circumstances, but the reality is that even with the import limits that might limit some creativity, people are uploading assets that should never be used for their intended purposes in a real-time environment. This is to say; It's not Second Life itself that's the main problem, it's the users that are using unoptimized assets.
  15. You might test for yourself to see, but I’m pretty sure it’s been posted that this is not the case. When a parcel has "hide avatars in this parcel" enabled, the parcel gets divided into two sections by height. Ground level + some height. (probably the same height as ban lines) Anything above #1. Let's say that #1 is up to 100 meters. If you are at 101 meters or higher, you can't see anyone at 100 meters or lower. However you can see everybody above you, no matter how high they are. I deal with this often, so I guarantee that this is the case.
  16. Kind of a weird thing coming from someone who admittedly has no knowledge of this topic and has only heard second-hand musings from another user who has no insight into the system being used. (No offense to Animats, I respect him.) You can't say "LL doesn't even realize," they are most likely aware of this but the cost of restructuring a major part of the server architecture for a few milliseconds gain in a situation where no critical harm is being suffered is probably not worth it. It is likely that -- like many things in SL -- the foundation was built on shaky knowledge and improved over time, but the core is still there and at this point it is almost impossible to change without a complete redo. And LL has attempted a complete redo, it's called Sansar. And this isn't even about "professional programmers," big companies make stupid decisions to no fault of the developers who might see the issues but have no power to influence the decisions. (Not to mention that "professional programmers" make lots of stupid decisions too, there are so many jokes and stereotypes related to programming that are very deeply rooted in a depressing reality.)
  17. "Yeah who cares that the TOS is out of date, we'll ban you for not following rules we haven't stated where you'd expect to find the information."
  18. If you are on a wireless (like WiFi) connection, there could be something else around your physical location that could lower the quality of your connection. A new device in your home, a neighbor, etc.
  19. This is 100% false. Unchecking the "Running" checkbox will not cause the script to be recompiled or reset when it's checked again. For proof, run this: default { state_entry() { integer counter; while(1) { llOwnerSay( (string)(++counter) ); llSleep(0.1); } } } This will count up forever without resetting. Script time will be 0ms when the script is off and the typical "Mono spike" isn't there when the script is turned back on unlike when you save/recompile the script. Heck, I'll run it for you: Obviously I'm not saying that this is practical or something to be expected of anyone to do.
  20. Any sim can become "over-filled" when Premium accounts are involved. See: https://community.secondlife.com/knowledgebase/english/premium-membership-r346/#Section__6_5 What is this magic percentage? Since when do avatars have a "max script limit" when there isn't even a hard limit on how many scripts you can put into a single object? If you set a script to "Not Running" (can be done manually or with other scripts), it's considered completely dead and won't even idle. So yes, turning off scripts does technically help.
  21. A pretty complex and overkill method is possible. You'd have to insert a script into every link (this can be done with scripts) so that each of them can check if there is another script in there, and report back to you in chat.
  22. An even easier solution for this case is to select the object(s), and going to Build > Scripts > Remove Scripts From Selection
  23. Well, based on this, "list besttime" will only have one value and there is nothing to sort. Edit: I had some sleep and realized that you are actually correctly adding to the list, so it does have multiple values. I recommend adding some debug messages to see what's going on. list besttime = besttime+[time]; sort(); string sort() { string bestlap; llOwnerSay(llList2CSV(besttime)); // debug list best = llListSort( besttime, 1, TRUE ); llOwnerSay(llList2CSV(best)); // debug string primo = (llList2String(best,0)); timelist = llParseString2List(primo,["."],[""]); integer secondi = (llList2Integer(timelist,0)); integer decimi = (llList2Integer(timelist,1)); string parse = getTime(secondi); //this is another user function converting seconds in minute.seconds bestlap=parse+"."+(string)decimi; return bestlap; //mm.ss.ddd }
  24. I'm sorry but I think you're the one off-mark based on that explanation. First of all, you don't "apply a UV." The UV layout is part of the mesh itself, not the texture. There is no "mascara UV" or "lipstick UV." There is only the "head UV." The UV map doesn't do anything for "alignment" on its own. "Orientation, positioning, and layout" are all the same thing and are done on the UV map. This can be used to align things. In SL, any object can only have a single UV map. Materials allow separate textures to be applied to different faces. This is not related to the UV layout. You don't "use the same UV on multiple materials," it's the other way around. The reason why you can apply a texture to a mesh (for example, the lips) but not affect other areas of it is because the lips have a separate material from the rest of the head.
  25. @Cesartje Anything that already has appliers made for it won't need an update of any kind for BOM. A regular applier can be used to apply the BOM textures like any other -- they will update automatically as you add/remove layers from your avatar.
×
×
  • Create New...