Jump to content

Wulfie Reanimator

Resident
  • Posts

    5,752
  • Joined

Everything posted by Wulfie Reanimator

  1. The term "physical" is a bit weird in this context. KFM works just fine for non-phantom objects. It's not just a client-side effect. "Physical" means objects that have the little physics-checkbox enabled, which makes them react to things like gravity. KFM objects which are non-phantom will push/carry avatars and physical objects. https://gfycat.com/happyhardtofindauk
  2. Complexity doesn't seem to take VRAM use into account at all. There is a comment that says "weighted attachment - 1 point for every 3 bytes" in a part of the calculation that concerns rigged mesh, but nothing points to that calculation actually being done. Rigged mesh gets a 20% increase to Complexity, that's it. Also, you can see the VRAM and triangle count in the Inspect window -- on Firestorm. The one in the LL Viewer does lack that information, but you can still "kind of" get that information from the Developer > Render Metadata > Triangle Count option. It's a pretty clunky way to view that information though. Firestorm's inspector: Metadata, Triangle Count: It's not about "alpha blended triangles" but "alpha-even-once." Again, in the source code: (I've redacted a lot the more convoluted bits.) shame = 0; ... for (i = 0; i < num_faces; ++i) { if (img) { texture_cost = 256 + (ARC_TEXTURE_COST * (FullHeight / 128 + FullWidth / 128)); } if (PoolType == POOL_ALPHA) { alpha = 1; } else if (img && PrimaryFormat == GL_ALPHA) { invisi = 1; } if (face->hasMedia()) { media_faces++; } if (textureEntry) { if (textureEntry->getBumpmap()) { bump = 1; } if (textureEntry->getShiny()) { shiny = 1; } if (textureEntry->getGlow() > 0) { glow = 1; } if (face->mTextureMatrix != NULL) { animtex = 1; } if (textureEntry->getTexGen()) { planar = 1; } } } ... if (alpha) { shame *= alpha * ARC_ALPHA_COST; } The code checks every face, and enables different multipliers for the whole object. Note that these are not increments, as in "if this face has alpha, add 1 alpha face," but "if this face has alpha, use the alpha multiplier for this object." You'll quadruple your total Complexity if even one tiny triangle has alpha blending on it. P.S. I can't for the life of me find the part that accounts for the triangle counts either. The getRenderCost is only concerned about textures, the other parts are... somewhere else... and they're not clearly paired up for some reason. I can find lots of functions that get the total/high LOD triangle counts, but those aren't used in any complexity calculations I can find.
  3. 1. Do you even have permission to share the script publicly? 2. Scripting questions belong in the Creation/Scripting forum, not People/General.
  4. From the source code I linked: // llmeshrepository.h const F32 ANIMATED_OBJECT_BASE_COST = 15.0f; // LLVOVolume::getRenderCost // Streaming cost for animated objects includes a fixed cost // per linkset. Add a corresponding charge here translated into // triangles, but not weighted by any graphics properties. if (isAnimatedObject() && isRootEdit()) { shame += (ANIMATED_OBJECT_BASE_COST/0.06) * 5.0f; } Render cost gets an additional 1250. Edit: I found another bit of code. It seems like attached animesh gets the additional 1000. // LLVOAvatar::accountRenderComplexityForObject const F32 animated_object_attachment_surcharge = 1000; if (attached_object->isAnimatedObject()) { attachment_volume_cost += animated_object_attachment_surcharge; }
  5. Since we're all 7 years late here, you can move your avatar using nothing but the mouse if you hold left-click on your avatar (so that your mouse movement turns the camera) and then hold right-click at the same time (so that holding both buttons moves you forward). You can stop by letting go of the right button.
  6. You can send them to me and I'll let you know if I was able to spend them. Can't even see the joke for the humor.
  7. Try putting porn in there and you have your answer. This example isn't any more hyperbolic than "what if they replace your profile pic on a whim?" Didn't you make this exact thread not too long ago? Unless it's just deja vu, but I think it was your alt. Though, this isn't the first time you make a post making a fuss about people in general doing things to you specifically, like that time your Nintendo-related MP listing was removed, or when people disagreed with your opinion of LL.
  8. It can also be found here in a more "human-readable" form: http://wiki.secondlife.com/wiki/Mesh/Rendering_weight Reading the code is fun though. Object complexity is internally referred to as the "shame" value.
  9. When you say "higher-quality mesh," what do you mean by that exactly? P.S. Is Complexity still based on an average of the reported complexity from surrounding viewers?
  10. Even when you have a solid case to sue someone, it might not be viable. They might not be in the same country/continent and hiring lawyers costs money, often more than you'd be able to get from them.
  11. I've had to implement Brain***** more than once across several exams... No idea how I'd even begin to do it in LSL since we don't have anything even close to pointers or character/ascii-value conversions. The assembly interpreter is a pretty good example of how ill-suited LSL is for this them.
  12. string source = "%22;%0A%0A// Hello, world!%0A%0Adefault%0A{%0A state_entry()%0A {%0A integer answer = 42;%0A llOwnerSay(llUnescapeURL(%22string source = %2522%22) + source + llUnescapeURL(source));%0A llOwnerSay((string)answer);%0A }%0A}"; // Hello, world! default { state_entry() { integer answer = 42; llOwnerSay(llUnescapeURL("string source = %22") + source + llUnescapeURL(source)); llOwnerSay((string)answer); } } This ("quine") is code that outputs its own source-code. Not just everything in the default state, but also the comment and the global variable with its contents. A much simpler method would be to write a notecard reader, then copy-paste the script's content into a notecard and make the script output that notecard. External data is boring, though! If you were to compare the output from local chat with the source code in the script, it isn't even one character off. 🎉
  13. That list is all wrong. Here's what real Rockstar developers are about: https://codewithrockstar.com/ (/tongueincheek) Many games from big companies these days are able to create very big worlds you can travel through seamlessly, including all building interiors and even cutscenes. This includes RDR2 and GTA5, though they were both made by the same company (also called Rockstar...)
  14. Step 1: Pray to a higher power. You choose which one. Step 2: Prepare to cry. Step 3: Get comfortable with collision events, physics in general, and preferably llMoveToTarget and llCastRay.
  15. It already has it. Motion without explicit animations, and IK.
  16. Up to 16 of them can be detected with a simple llSensor. If you want to detect all avatars, you can use the example script here without the raycast part:
  17. If you have the UUID, you can apply it without restrictions. Products on MP that "encode/encrypt/protect/hide" UUIDs only do so while they are being communicated between scripts. Basically, the UUID gets turned into some other text, sent to the other object, which then reverses the encryption to apply the real UUID. This is almost always insecure and completely unnecessary, because textures are incredibly easy to get to from outside the viewer. There is no script solution to protect textures. No protection, really. llGetTexture's wiki says: If the texture is in the prim's inventory, the return value is the inventory name, otherwise the returned value is the texture UUID. NULL_KEY is returned when the owner does not have full permissions to the object and the texture is not in the prim's inventory. Having tested it for myself, I'm not able to get the texture UUID even when I have copy/modify permissions. (I've sent a no-transfer object to my own alt, the texture is full-perm.)
  18. The "anti-cheat system" in Linden Realms is automatic, at least the part that sends you home if you're moving too fast. When an avatar gets reported, it is never automated. @Linden Lab has multiple teams manually checking the reports.
  19. I'm aware of that, but: 1) I don't think that's what was meant. 2) If that was meant, what if those others are idling too? 3) What about sims that don't have to share? @Profaitchikenz Haiku Recursive functions will run out of memory, and there is no way to write a script in such a way that it never gives up to the sim. Even infinite loops have breakpoints at the end of the iteration.
  20. Why is the script time capped even in situations where there is still spare time?
  21. Nooooooooo!! 😖 (Not kink-shaming though.. maybe a little.)
  22. There are some furry-branded furniture which cater specifically to big size differences. Look up Vivid and maybe Saurian.
×
×
  • Create New...