Jump to content

Madelaine McMasters

Resident
  • Posts

    22,964
  • Joined

  • Days Won

    19

Everything posted by Madelaine McMasters

  1. Kwakkelde Kwak wrote: I'm not quite sure how jpg compression works, but I suspect it kind of works like "this entire area is all black". That's not a lot of data, so the resulting size is small. I don't know the exact technical reasons, but the fact is, SL textures in VRAM are uncompressed. Look at it this way: zip files are smaller than full files and contain all data. You can't use the files when they are compressed though. In order to look at them, you need to uncompress them, that's what happens in the video card before the gpu can understand any of the data. Every single pixel is assigned a (8 bit) value for each channel, so the numbers I posted earlier are the ones you should use. The size of your jpg on disk before upload is a bogus number for SL, even before it reaches your graphics memory. All textures are stored as jp2 on the SL servers. So bmp images get smaller after upload, jpg images probably a bit larger, depending on the level of compression. Then as they hit your graphics card they are all the same size as a bmp again, or 1/3 higher for the Alpha channel. Kwak, your explanation of SL server texture size vs GPU memory texture size sounds right. The mechanics of JPEG compression are pretty sophisticated and are tuned to our understanding of the way our visual system works. The more detail (high spatial frequency content) in the image, the less JPEG is able to compress it. But GPU memory usage might be more complicated than just thinking of uncompressed texture sizes. The viewer loads textures progressively from the servers. You see this when you watch something rez, or when you rebake your avatar. It'll first take on a patchy appearance, then get sharper as the higher resolution data arrives. It's been a long time since I paid attention to such things, but I recall that if I zoomed across my sim, I'd catch far away objects exhibiting that patchy look. They would then sharpen up as I watched. I got the impression that the viewer was not asking for any more resolution than it needed to display a scene. So, an object textured at 1024x1024 that's at the very edge of the draw distance might only load its texture at 64x64 before stopping. The same would hold for a tiny object nearby (like a pearl in a necklace). As you approach an object, the viewer realizes that additional resolution is needed and asks for it, but until you do, I have reason to wonder if the GPU is caching the full resolution texture in RAM. Once the full resolution textures are loaded into disk cache, they needn't be downloaded again, unless flushed from the cache. But once it's been loaded into GPU memory because you took a close look at the object wearing the texture, it is possible to discard the big texture and keep lower resolution copies as you back away from the object thereby saving RAM. I don't know, I'm theorizing based on knowledge of other rendering systems. There's a technique called mipmapping that encodes multiple resolutions of a texture in a space that's 4/3 the size of the original texture. Successively less resolute mappings of the original texture are packed alongside the original. This allows the GPU to paint objects that occupy only a few screen pixels with much smaller textures. Rather than trying to mathematically downsample a 1024x1024 texture into a 12x12 pixel space in the scene, the GPU might just downsamples the 16x16 version of the texture from the mipmap. The resulting reduction in pixel manipulations can be tremendous, and sophisticated downsampling algorithms can be used in non-real-time to created the best looking lower resolution textures. Mipmapping can be done at the server, and maybe that's what we see as our avatars sharpen up after a rebake. The server builds up the entire mipmap starting with some low resolution and ending with the textures uploaded resolution. It would make sense for SL to work this way, distributing only the pixels that will actually be seen. So, while your comparison of compressed and uncompressed image sizes is valid, and JPEG size means nothing with respect to GPU memory usage, it's probably even more complicated to figure out how texture memory actually gets consumed.
  2. Helium Loon wrote: Any user function calls within a block would also require a new thunk, since the return address needs to place properly in the execution stack (so things unwind properly.) So unless the block contains NO references to local variables or global functions (in Mono/LSL, in C/C++ and other languages it gets even more complicated) then the block contents wouldn't require a thunk. Not sure if built-in functions would also require it..... Analyzing that for a large block could get quite messy. I'd have to actually look at the Mono compiler code to see how it handles this...... Not sure if it would bother analyzing code that in-depth. Obviously, modern high-level language compilers do a LOT of optimizing and analyzing.....but I doubt Mono does more than cursory optimization. I'm still not sure there's any overhead for putting a simple statement inside a block by itself. If that sole statement is a function call, it'll need the same stack frame whether in a block or not. Since we're talking about bracketing simple statements, are there examples of them that would have local variables? The compilers that I used in my embedded work (GCC derivatives) would generate the same code for a simple statement, regardless if it was in brackets or not. If allowed, they could also inline functions, unroll loops and do all sorts of things that taxed my ability to recognize my algorithm in the resulting assembly language and made it nearly impossible to trace execution with my logic analyzer, or to single step through non-existent loops with the debugger. Mono is a bytecode interpreter and I've no idea what the virtual machine looks like, nor how the compiler handles the situation we're discussing. This seems like something a curious person with excess spare time could test ;-)
  3. Helium Loon wrote: Unlike all the others, I will actually speak to the efficiency/compiler consequences of using a 'block' or compound statement instead of a simple one (when it will suffice.) Do a little research on compiler theory. One will find that whenever a 'block' opener is found, the compiler introduces a new 'thunk' or stack frame. This is why variables defined within such a block have scope limited to that block. It introduces a new stack, and new address references (you can add a label to a 'block', for unconditional branches, etc.) However, a simple statement does not require the creation of a new 'thunk'. Therefore, from an efficiency/speed viewpoint, using blocks in an IF or ELSE clause when not needed actually degrades the performance/efficiency of the code. Creating a new 'thunk' requires additional memory, and has setup time. Now, most modern language compilers optimize this anyway.....if only one statement is found within the braces, it will automatically simplify it to the non-enclosed version for compilation. I'm not certain whether or not Mono does this or not. So, for myself, I will continue to use BOTH formats, as appropriate. When doing initial coding, I will use the braces everywhere.....then once the function/event/etc is debugged and working, any single-statement blocks will be pulled out of those enclosing braces. Hmm. While the C compiler will declare a new scope upon encountering a block opening and may create a new local namespace pool during compilation, whether that translates into a difference in generated code has been, so far as I've experienced, dependent on the scoping of the variables inside the block. If the compiler finds nothing inside the block that is local, it generates no new stack frame, as all the variables inside the block are already in scope. Blocks allow you to declare local variables within the new scope, but they don't require it.
  4. KarenMichelle Lane wrote: Czari Zenovka wrote: KarenMichelle Lane wrote: HAVE YOU BEEN GINGERED TODAY? Classic Ginger [aka Red]............................ Lucille Ball ........................................................ Gingers can be Dramatic, Inspiring, Sexy and Funny! Lucille Ball was always referred to as a redhead - she refers to herself as having red hair in the "I Love Lucy" show. Nothing "ginger" about her. *Hrumphs* KarenMichelle Lane: Sends Czari into the corner of the chat room for not keeping up on the discussion. FYI - Redheads, Reds, Gingers, [ the inelegant term Firecrotches ], Umbers, Carrot Tops, Oranges are all terms for the class of people with RED Hair from the pairing of the recessive gene we all share in common.,. The intensity and shade of red varies from deep auburn red to, red, to orange to ginger red, to pale red to strawberry blond. We all are Reds and all the terms apply interchangeably. Depending on our diets, skin tone, age, exposure to sun, hair care product regime, and environmental conditions our presentation color changes over our lives. ..and this doesn't include color enhancements via L'Oreal - LOL Stop making issues were none exist. Mom is Irish, red-haired (with freckles), green eyed, tough as nails when needed, soft when needed, quiet, patient and nearly devoid of temper. Dad was blonde, blue eyed, tough as nails when needed, soft when needed, quiet, patient and nearly devoid of temper. I start the summer strawberry blonde and end it very blonde, with freckles. I can be tough, soft, quiet and patient... until I explode. Then I silently scorch the Earth. So much for stereotypes.
  5. You can't blame me for what's in the hallway, I slept outside last night... Happy Monday, Kids!!!
  6. LepreKhaun wrote: Users modifying other peoples userpages is a huge no-no and IMNSHO should be explicitly made a rule that, if broken, would result in that user losing their editing privileges. It leads to a lot of ill-feeling and drama on the wiki. For instance, http://wiki.secondlife.com/wiki/User_talk:Daemonika_Nightfire and a case of a teacher who had posted code examples that were being used in her classes that someone decided to "fix" which that lead to a discussion that spans across a number of places. In programming style, white space (indentation of logic blocks, a space after a comma or on either side of binary operators etc) is "good" in the sense it improves readability. I personally don't feel that the opening brace requires its own line because it adds vertical white space to the code and leads to code "wrapping" across page boundaries. But that is just my own preference, I like to be able to see as much of a subroutine or event as possible whenever I'm writing it and especially when I'm debugging. In fact, when it comes to "if .. else" constructs, my preference is for: if (test) { // do this} else if (othertest) { // do that} else { //do what} And that goes double the more "else if" tests there are chained together. It leads to less scrolling up and down to examine everything. And, because I know how code can change as it matures, I write my simple "if" statement with that in mind: if (test) { // do this} Now, that's just how I write code. I wouldn't recommend it to anyone else and, because I respect the right of others to code in their own style, would certainly not presume to change anothers userpage to enforce it. But, then again, I wouldn't try to enforce my "standards" on anyone else in a public forum either. As I grew through the ranks professionally, I was sometimes kidded for owning (I always bought my own) "weenie" computers connected to "ginormous" monitors. I did this because, like you, I wanted to see as much context as possible, whether in a code file or a schematic diagram. Having a zippy computer that can quickly pan and zoom around a large document is no replacement for a computer which doesn't have to do that (which means my RSI afflicted body doesn't have to do it either) because it's driving a capacious (in pixels) display. So, even though I kick myself every time I want to cut/copy a block of code from something I've written, I prefer the method you use because it squishes more onto the screen.
  7. Erik Verity wrote: Programming classes in universities and colleges always warn that specific companies, corporations, etc. (business interests and groups) will almost always have their own rules and guidelines which do not have to agree with any one particular style or international standard. They are free to do this and to an extent should; they have code that has to be read and contributed by multiple sources. It is wrong to take any organization's or company's standards or rules and define it as a right or wrong way for everybody unless it is an international standards organization, which MISRA is not. It is also realized that the use of brackets for a single line code block in these cases is a good habit, simply for reducing errors when editing. That alone is the only real benefit - readability in this case really is a matter of taste. I often leave out the brackets for a single line in cases where I simply need more of a script I'm working on to fit in the page view without a lot of scrolling. In that sense, leaving them OFF is more readable to me - they double the verticle space needed to read the script and a simple indented line is easy to recognize. Most of the time, I will edit a script in the end to include the brackets. I don't like to have them included in some cases of single lines and leave them out in others - inconsistency in a script's style is what would be wrong. ETA: The same textbooks that warn against editing errors when the brackets are left off continue to print multiple code examples throughout with the brackets left off. ETA again: While being a standards organization for software for the auto industry, not for a programming language by itself, it is more correct to identify MISRA as a business interest organization than a standards committee. People are free to adopt standards like MISRA C, or not. The advantage of adopting standards, even if you don't like them, is that all kinds of support sprouts up about them. While we had to invent our own style checker/pretty printer for my company's ad-hoc C coding standard, such things (and far more sophisticated analyzers) are readily available for MISRA C. When I went out on my own as a consultant, I reverted to writing code "my way". I recall being taught "top down" and "specification driven" software design in college. Both of those methods, which were completely counter-intuitive to me, proved disastrous in application when I started working at that medical instrumentation company. We designed real time systems (and by real time, I mean down to the microsecond) and the low level stuff had to be written first. It often wasn't until that was done that we really got an understanding what we'd really be able to do with the system. So we'd spend a lot of time optimizing foundational things before building atop them. Similarly, starting with a specification and then coding to it was the dumbest idea my company had ever heard of. I agreed with this assessment, as I'd grown up with an engineer Father who claimed never to have seen a specification that was useful, much less right. He was exaggerating, but not by much. I noodle my way to success. I try stuff, if it works, I keep it. If it doesn't, I toss it. During the decade I was on my own as a consultant, I'd rapidly turn over prototypes to clients (sometimes starting with cardboard and duct tape) and get their feedback. Twenty iterations and two years later, they'd get what they wanted and be happy campers. I am, of course, an anecdote in the history of design. I don't recommend my way to anyone, even though it has served me frightfully well. I do think that software is still something of an art. Even those who don't believe that often agree that software folks at least behave like artists ;-)
  8. 8-10-14156 BC Grrr, son of Mmmmph (the clan elder), wins the heart of Oooooh (the clan hottie) when he inadvertently breaks wind during an arm wrestling match with Oooooh's mother, Owwwoooo. Thankfully, as mankind had not yet invented written language, no record of this disgusting event remains. Modern humans find more agreeable ways of advertising their sexual prowess...
  9. Good morning, Hippie! I thought you'd still be sleeping after last night's Rez Day party. Sorry I missed it!
  10. arton Rotaru wrote: I certainly prefer the one with curly brackets. I used to write my code without them, but I ran too often into trouble when adding more code, while developing a script. So I trained myself to always write curly brackets, no matter how many statements there will be. I find it easier also, to read scripts, that somebody else wrote, with the brackets and everything on it's own line. Although, I prefer it this way: if (perm & 16) { llStartAnimation(animation);} The thing about editing in a residents wiki page is a nogo for me, though. Arton, I prefer your way of bracketing as well, even though the coding standard I helped develop (mentioned in my other post) forbid it. Brackets were required to be on lines by themselves (comments were allowed). The reasoning behind this was that blocks of code could be more easily selected for editing. I sure don't like the way it looks, but during discussions with other engineers, the collective recollection was that the way you and I like it made it more difficult to grab the block. While I find our bracketing style to be pleasing to the eye, I kick myself every time I try to select a block of code after a control flow expression because I must drag my mouse to exactly the right location in the line rather than just hit the line the bracket is on. We can sometimes be our own worst enemies!
  11. Dora Gustafson wrote: The If construct has the form: if (condition) <statement>; where <statement> can be a simple statement or a block statement In other words: a statement or a compound statement where the compound is one or more statements inside curly brackets So this writing if ( llGetPermissions() & 16) llStartAnimation( animation); and this if (perm & 16){ llStartAnimation(animation);} Are both valid and they both compile to the same If some one says one is better, I ask: what is better, define better please If they answer that one is right and the other is wrong I say that both are right, both compile. If they say that one is more readable I would answer: it is a matter of taste Both abide to the compiling rules If someone thinks there are some rules broken in either way, please tell me about it Why this and why now? I published a script on the wiki in my resident's space and someone 'broke in' and modified it for 'better readability' I must admit I am a bit upset by it I know the Wiki is for anybody to modify I'd do it all the time but never in another resident's page Dora, there are many coding conventions which are a matter of taste, but this particular one is more than that. I worked at a medical instrumentation company who's internal "C" coding standard required that all control flow expressions be followed by compound statements. The reasoning was that it improved readability and reduced errors. My experience there, both before and after adoption of the coding standards, showed that the reasoning was correct. I was the one who contributed the compound statement requirement to the coding standard. Since then, the Motor Industry Software Reliability Association created "MISRA C", a coding standard for the C programming language. That standard goes well beyond the one to which I contributed, and it does require that all control flow expressions be followed by compound statements. Abiding by the compiling rules is necessary, but not sufficient, to be considered "right". I can (and often do) craft code that compiles beautifully and doesn't work. By any sensible definition, my code would be wrong. I can also craft code that works (and so compiles correctly) but induces those who follow me years later (including myself) to misread it, misunderstand it or be lured into editing it in ways that break it. For me, to be considered truly right, a piece of code must compile correctly, do the intended job without error, be easily and correctly understandable by others, and reduce the potential for future editing errors. ETA: as there is no coding standard for the wiki, I wouldn't edit another's entry to make it conform to my own, even if I had empirical evidence to show that mine is better ;-)
  12. Ceka Cianci wrote: it's one of my most favorite areas..and yes eagles do rock =) which reminds me of another beautiful bird which i had the pleasure of watching in the wild just because i happened to be looking that direction one day the moment just before it went into a dive... i've never seen anything like it.. it just reached it's peak and turned in the air to aim downward..then started off slow in a dive..it looked like a sleek jet with it's wings getting closer to it's body..then all of a sudden it just bolted downward and was gone in the blink of an eye into the tree top horizon.. i never seen anything so fast in my life..it was beautiful.. the thing that amazed me is i didn't know they existed where we were..and it was just so cool that i got to see it and could have missed it if i would have had my head turned a little to the left or right.. i haven't seen one since.. i don't know what type of falcon it was..but there is no mistaking when you see one do that..that is for sure.. I've got red tailed hawks in my neighborhood and a few peregrines have been spotted. Years ago, I saw a hawk swoop down into my yard and grab a bunny. I didn't catch the dive and what I saw was out of the corner of my eye, but it was impressive. After that, I kept watch for them soaring over the fields near my house and I've since seen them scoop up field mice. When the hawks get near my willows, the starlings (I think they are starlings) will rise up like a little cloud and harass them. There's sometimes one who gets full of him/herself self and just hounds the hawk until he leaves. There's safety in numbers, but not every starling seems to know that. The crows go after them one at a time, easily outmaneuvering them. Now we've got a couple eagle families along the river and they'll sometimes soar along the Lake Michigan shore. They are so graceful and can soar on the ridge updraft for miles if there's an easterly wind. One went swooping through my willows a few years ago. I thought it was an airplane! In winter, it's not uncommon to see bunny or mouse tracks heading across the snow, stopping in mid hop surrounded by gentle swirls from the wings of the barn owl that scooped it up so she could eat it on top of my chimney at 2AM. I've got seagulls here too and love to watch them fish. They'll often dive head first into the water and come up with lunch. Last year I caught one skimming... It's a tough and wondrous world out there.
  13. Perrie Juran wrote: I'm beginning to regret posting that video. It was never my intention to start a video competition. It was really intended for another thread............. /me returns to the peanut gallery and goes back to munching on my goobers. It's not a competition, it's a collaboration!
  14. Ceka Cianci wrote: godwin time!! i give you.. The Honey Badger!! \o/ Pfft! Eagles rock!... ETA: Ceka? Do you get the feeling we're actually giving examples of the superiority of RL over SL? Nature's World, Nature's Imagination?
  15. Perrie Juran wrote: Madelaine McMasters wrote: You're cuter than I imagined, Perrie! When I was young, I learned how to unzip and eat bananas by watching monkees at the Milwaukee County Zoo. I'm hoping you know how yourself, but if you don't, you won't be the first fella to learn the technique from a gal. Most Earth People I have observed seemed to have taken their lessons fron snakes. I call your snake and raise you a centipede...
  16. Perrie Juran wrote: <threadjack> I know this really has nothing to do with this thread but after reading a comment in another thread I really needed to get this off my chest. Thank you all for your patience. </threadjack> You're cuter than I imagined, Perrie! When I was young, I learned how to unzip and eat bananas by watching monkees at the Milwaukee County Zoo. I'm hoping you know how yourself, but if you don't, you won't be the first fella to learn the technique from a gal.
  17. There are (at least) two different issues at work here. One is the rendering of complex scenes in which the shortcuts of a world like WoW can't be used. Because of the centralized professional design of the WoW world, textures and geometry are heavily optimized and reused. SL is a mess. Maybe sparse voxel octree technology (SVO) helps there, but it seems to have problems with avatar animation and global illumination (I think because that wants to crawl backwards on the octree). There was a thread here a couple years ago about an Australian company that claimed they were gonna take over the world with their SVO technology. I've not heard a word about them since. The other issue is communication and synchronization of the underlying world information, such as texture/geometry handoff as objects move in-world, animation of objects and avatars, collisions (physics) etc. As Perrie linked, there are numerous ways to skin that cat, none of which scale well with world size and population density. I'd have a much better feeling about Hi-Fidelity's ability to solve these problems if their website didn't look like yet another Rosedale love fest. nVIDIA probably has more people working on SVO than Rosedale will ever attract. What's his batting average been since LL? To his credit, he has wrestled a little venture capital out of Google, and apparently LL.
  18. Trinity Yazimoto wrote: valerie Inshan wrote: Had to post this for you Trin! hahahhahhahhaha yes ! Ah que ... Coucou !!!!! i was totally fan lol thanks Val Wait a doggone minute! First you tell Hippie that coucou means hiya, then you rave about two crazy puppets going wild over naughty (yet observant) little things popping up and yelling "hiya!"??? No, no, no! Those li'l things are yelling exactly what the sane among us would expect them to yell... "You're nuts!". Thank you very much for proving that my understanding of your goofy French language is every bit as good as I think it is.
  19. jwenting wrote: oh, but if you don't believe word for word identically what someone else believes you're of course a heretic and must be burned at the stake... Don't you love the way people interpret religious writings to mean they can do nasty things to other people, and forget that little thing about "turn the other cheek" and "an eye for an eye" (which to me means if I hit someone with a stick he gets to hit me right back, and vice versa). In a little less than six years, we'll learn the truth about "an eye for an eye"... http://community.secondlife.com/t5/General-Discussion-Forum/What-happened-in-History-on-this-date/m-p/2099255#M117060
  20. valerie Inshan wrote: Hippie Bowman wrote: Coucou tout le monde! Peace! :D:D Coucou Hippie!!! Bonne journée et gros bisous ! Hippie, if I'm not mistaken, Val just called you a nut and told you to take a journey with Bonnie on either 144 biscuits... or an ugly one. Val, I think you need another vacation...
  21. PeterCanessa Oh wrote: General Ripper, Sir, as an officer in Her Majesty's Air Force, it is my clear duty, under the present circumstances, to issue the recall code, upon my own authority, and bring back the Wing. If you'll excuse me, sir. As we take it easy and wait for those particles to do us proud, I'll have a rootbeer, made with rainwater. Help yourself to whatever you'd like, Peter.
  22. PeterCanessa Oh wrote: IIRC particles targetted at a prim continue on their way to that target, even if the emitter prim changes to another target while they are 'in flight'. That being the case a single emitter can send a stream of particles to each target in turn, cycling through them. Using enough slow particles should mean an apparently-solid line can be drawn to more than one target at a time. Using fewer or faster particles would result in a 'dotted' line, which might be quite aesthetically pleasing. Of course, if I've forgotten how particles behave and in-flight ones turn towards the new target this post is completely wrong! In any case, since particles are client-side artefacts there's no predicting what any particular person will see (YMMV). In my experience, particles, like B-52s commanded by Gen. Jack D. Ripper, can't be recalled once they're set on target. Your idea should work, Peter!
  23. Trinity Yazimoto wrote: Coucou Hippie !!!! dont listen to these pests.... yep coucou is also a bird and also a clock, but we use it daily for saying hiya and its always a nice and kind way to say hello ! Im proud of you Hippie, you are a good student :smileyhappy: for your next lesson : everyone = tout le monde... so you can say coucou tout le monde ! you know, in every classes there are those bad students, indisciplinated that mocks the good students (usually... sometimes the good one is also the most indisciplinated lol... i know what im talking about hehehhehe).... but dont worry, ill give to Maddy and Val more homeworks as punishement...:smileyvery-happy: Pfft! Where I come from, "tout le monde" sounds like what you'd do after eating a bowl of my chili.
  24. valerie Inshan wrote: Good morning Hippie! Big Hump Day hugs to ya! After weeks of terrible heat, it's raining at last, yay!!! How do you like my wellies? Ooooh, perfect! Though I can't see them, I know you're French, so I'll presume your nails are painted to match. I'm half Irish, soo...
  25. Hippie Bowman wrote: Hey everyone! Trinity taught me a new word yesterday. It is coucou and it means hiya. Let me practice! COUCOU EVERYBODY! Peace! Where I come from, it's spelled cuckoo, pronounced "koo koo", and describes most everybody I like.
×
×
  • Create New...