Slashdot Mirror


User: daVinci1980

daVinci1980's activity in the archive.

Stories
0
Comments
554
First seen
Last seen
Profile
(view on slashdot.org)

Comments · 554

  1. Re:Raytracing scales up far better... on Ray Tracing for Gaming Explored · · Score: 1

    I still don't speak for NVIDIA.

    Sorry, I should've been clearer about my 100-500K number. This includes passes for (e.g.) depth texture rendering (for shadow passes), environment mapping passes, etc. Everything else you mention is still an effect that is either complex in the number of triangles or the number of pixels.

    I don't agree that raytracing inherently scales up better. Modern GPUs are basically lots of custom HW sitting on top of many processors (see the stream processors field). And raytracing doesn't make certain issues go away, like the texture bandwidth requirements. Modern game engines use huge amounts of texture bandwidth (and contrary to your post's sibling, they generally aren't for precalculated visibilty or luminosity maps. That's so 1996).

    I'm not saying that we shouldn't be looking into raytracing as a possible successor to rasterization. It could be that raytracing is the right direction. What I am saying is that you should avoid reading an article written by someone who has intimate knowledge of raytracing, but only has knowledge of rasterization as of about 10 years ago, and assume that everything he says is correct. (Just as you should take everything I say with a grain of salt, my own RT knownledge is currently limited, though I'm taking steps to get to the bleeding edge of RT as quickly as I can).

    Cheers!

  2. Re:Raytracing scales up far better... on Ray Tracing for Gaming Explored · · Score: 3, Insightful

    Disclaimer: I work for NVIDIA. I speak not for them.

    People keep saying this, that raytracing scales up better than rasterization. It's simply not true. Both of them have aspects that scale linearly and logarithmically. They do scale differently, but in a related sort of wy.

    Raytracing is O(resolution), and O(ln(triangles)), assuming you already have your acceleration structures built. But guess what? It takes significant time to built your acceleration structures in the first place. And they change from frame to frame.

    Rasterization is O(ln(resolution)), and O(triangles). Basically, in a rasterizer, we only draw places that we have triangles. Places that don't have triangles have no work done. But the thing is, we've highly pipelined our ability to handle triangles. When people talk about impacting the framerate, I want to be clear what we're talking about here: adding hundreds, thousands, or even a million triangles is not going to tank the processing power of a modern GPU. The 8800 Ultra can process in the neighborhood of 300M triangles per second. At 100 FPS, that'd be (not suprisingly) 3M triangles per frame.

    Modern scenes typically run in the 100-500K triangles per frame, so we've still got some headroom in this regard.

    Cheers.

  3. Re:Stepping Through on Tools For Understanding Code? · · Score: 4, Insightful

    This post is dead on.

    Place a breakpoint somewhere you think will get hit (e.g. main), and then start stepping over and into functions. I usually attack this problem as follows:

    Place breakpoint. Use step-in functionality to drop down a ways into the program, looking at things as I go. What are they doing, how do they work, etc.

    Once I feel like I understand how a section of code works, I step over that code on subsequent visits. If I feel like this isn't taking me fast enough, I let the program run for a bit, then randomly break the program and see where I am.

    Lather, rinse, repeat.

    Also, this should go without saying, but you should ask someone who works with you for a high-level overview of what the code is doing. The two of these combined should get you up to speed as quickly as possible.

  4. Re:double digits? on First Scareware For the Mac · · Score: 1

    That was my favorite part: "With the Mac's market share closing in on double digits"

    Market share refers to the percentage of total install base that are macs.

    In all honesty, mac has been closing on double digits for the last... well, how long have they been in business?

    They're definitely doing a good 'little engine that could' impression, though. Most companies that can only maintain a small percentage of the market place fold. I suspect that the reason Mac hasn't is due to the exceedingly large size and growth of the consumer PC business.

  5. Go to the source, article is plagiarized on Microsoft Giving Xbox Live Users a Free Game · · Score: 3, Insightful

    Honestly, the author took this posting over at the official xbox site, and then snipped together almost every single sentence with 'Whitten said'. Although, to be fair, I think about 15% of the middle of the article has some original thought. (The part where they explain what xbox live is). Of course, they could've just linked to the pages describing membership, instead.

    The author then failed to cite the original article. What a piece of journalistic crap. PCWorld, MacWorld and Peter Cohen should be absolutely ashamed of themselves for writing and publishing this drivel.

  6. Re:HL2 Has Levels? on Why Do Games Still Have Levels? · · Score: 1

    Scripting really has nothing to do with it. And not all modern games use scripting engines anyways (the Source Engine, for example).

    But let's say that a game has 16M of scripts (that's a LOT of code, like nearly a million lines of script). That's the same amount of memory as a mere 16 512x512x32bit textures (and that's if they don't have miplevels). That's basically nothing.

    In 3D games, the big memory costs are models and textures. At 32+ bytes per vertex, a model with 5000 verts (approximately the number of vertices in a UE3 character model) is 160K + another 10K for index data. Texture data is typically 32 or 64 bits per pixel, so a 512x512 (uncompressed) texture is 1 or 2 megs (32 vs 64 bits).

    And after all that, none of that is a technical reason for the requirement of levels. As many other posters have mentioned, lots of folks have solved the level issue. It basically means you need to figure out how to stream your data in before you need it, and drop it from memory when it's no longer necessary.

    Personally, I agree with the poster who said that the real reason for levels was the human factor.

  7. Re:didn't want to know on Non-Compete Agreement Beyond Term of Employment? · · Score: 1

    A rational redress requires a rational argument. You didn't really present an argument in the first place (at least not a coherent one), so I'm not really sure what you expected.

    Your 'old boys club' is ludicrous. Geeks are pretty much the most accepting group on the planet. We've all been discriminated against through our youth, we at least empathize with others who are being discriminated against (generally, certainly that's not true in all cases).

    Medicine is a real old boys club. Talk to any female doctor. People always assume that a) you're a nurse. b) you're less competent than your male counterparts. c) you should leave the real work to the men.

    Frankly, your misconception doesn't apply to most young geeks in the workplace. All of the women in my office are absolutely as competent as I am. The female managers at NVIDIA are some of the best managers I've worked with.

    I have no intention to apologize for the actions of others of my gender. I take personal responsibility for my actions, and those assholes can take personal responsibility for theirs. If you have beef with a specific person, take it up with them.

    If your axe is with all of the male gender (as you've so clearly demonstrated), I'm afraid you're going to be waiting awhile to hear any sort of apology from me in this context.

  8. Re:didn't want to know on Non-Compete Agreement Beyond Term of Employment? · · Score: 1

    *Yawn* Are you serious?

    You do realize that when you go on the offensive like this, you just come off as a misandrist, right?

    I don't hate women. I also don't think they're below me. Had we been posting at cosmo.com and someone was offended that the readership didn't realize he was a male automatically from a name like Barb_1231415, I would've chastised him for being a dumbass, too. This had nothing to do with her gender, it had to do with her 'hating' that people didn't automatically specify the correct pronoun on the anonymous intertubes.

    Here's a bit of information for you: people on the internet lie. All the time. I play female characters in MMOs. I'm definitely not a female. How does anyone know that her handle has anything at all to do with her person in real life? Do you think, because my handle is daVinci1980 that I am actually Leonardo da Vinci reborn in 1980? (Hint: I'm not)

    Now, I'm gonna go downstairs and climb in bed with my wife. She's an ob/gyn. And while you're busy railing against the unfairness of a male-dominated society that doesn't hold you as its equal, she's gonna be in the hospital--in the old boys club--proving every misogynist in the place wrong.

    I'll accept your apology anytime.

  9. It's to avoid nuh-vidia syndrome on Non-Compete Agreement Beyond Term of Employment? · · Score: 1

    First, it's nVidia, with a capital V, so I'm already suspicious that you don't work there

    You are mistaken. The little 'n' in front of NVIDIA is actually the same size as the rest of the word, it was chosen stylistically to avoid having people call us 'nuh'-vidia. Having the little 'n' followed by VIDIA indicated better to people that it should be pronounced 'in-vidia'. Technically, NVIDIANs are always supposed to write NVIDIA, but I was feeling pretty lazy, so there you go.

    And you're right, my homepage is terribly terribly out of date. Here's where I (more frequently) post stuff: http://lexamb.blogspot.com/ I'll update my slashdot profile, thanks.
  10. Re:ask a lawyer on Non-Compete Agreement Beyond Term of Employment? · · Score: 5, Interesting

    God, I hate that. It's she.

    You must not write on the tubes much. Newsflash: if you go to a site that has 95%+ male readership and are surprised when people assume you're male when you have (at best) an ambiguous handle then... Well, I have nothing. You probably get surprised easily. Boo. Did that surprise you? I expect it did.

    I must believe you don't work in USA then

    I work for nvidia. My employment contract said:
    a) Any inventions I invent on my own time with my own equipment are mine.
    b) Any inventions I invent on their time and/or with their equipment are theirs.
    c) I can leave nvidia whenever I want (duh) and go work for whomever I want, on whatever project I want.

    All they ask is that if I'm thinking about leaving, I let them know so they can see if they can make the reason I want to leave go away.

    You can have my job when you pry it from my cold, dead fingers.
  11. Re:Let's Look at the Fourth Amendment! on Comcast Charges $1000 Per Wiretap · · Score: 1

    I did get pulled over for Drunk Driving going 55 in a school zone. You know what it took me to get out of that ticket? My hair cut and a USMC ID.

    You're a credit to servicemen and women everywhere.
  12. Re:aroberts you totally missed the point on Blog Action Day · · Score: 1

    Many recycling programs fail because people do not want to bother with separating their trash.


    Most recycling programs fail because recycling isn't economically viable. It's 3x as expensive to 'recycle' something as it is to place it in a landfill. And oftentimes, just because you place something in the recycling bin doesn't mean that it actually will get recycled. It might have too much organic residue leftover, or the guy who is sorting that day just doesn't recognize it for what it is.

    I'm all for developing a long-term, economically viable recycling solution. And I do recycle all of my aluminum, because that (at least) is a net-win for the environment. But pretty much everything else just goes in the trash.
  13. Re:Yea, it's all the same. on Are Relational Databases Obsolete? · · Score: 1

    A query on a row store has to query entire rows, which means you'll often end up hitting fields you don't give a damn about while looking for the specific fields you want to return.


    This is untrue. In virtually all row databases, the index stores the offset for each field for each table. Records are fixed width, and the offset to each field within a record is at a known offset from the beginning. If I query for the last name of a person, I read only the last name of a person for each entry in the table. I read nothing I don't want.

    It's no accident that to move from one record to the next requires a single assembly instruction (an add) with periodic bulk reads from disk.

    This is why having variable length text in DBs screws up the perf, what I've said is no longer true. However, most DBs store text as a fixed size pointer to another buffer elsewhere to avoid precisely this problem.

  14. Works for NVIDIA on AMD Considering Getting Out of Fabrication Business · · Score: 5, Informative

    Being fabless works for lots of companies, for example NVIDIA (disclaimer: I work for the gentle green giant).

    There are lots of companies who only do fabrication, just as there are many other fabless semiconductor companies. With process shrinks occuring as quickly as they are today, it makes a lot of sense to let someone else (or several other someone elses) deal with the cost of developing fab facilities capable of the latest and greatest process size.

  15. Re:Taking things out of the black market on Legal Online Gambling May Return to US · · Score: 1

    As with most thing I will always prefer regulation + taxation over outright bans.

    Exactly. If you want to smoke pot and take coke but manage to be a productive member of society regardless, good for you. And, the taxes that we can collect on the drugs we sold you can go towards funding treatment programs for addicts and education for the younglings.

    Why is it that people don't get that by banning drugs we've created a black market that commits crime I do care about (murder, theft, coercion, rape, etc) in place of a bunch of people doing something I don't care about?

    I should add a suffix here: I don't want you to be able to smoke pot and drive a car; just as with drunk driving, operating a vehicle while under the influence should also be illegal. The government should not be in the business of creating black markets. Regulation + taxation for the win.

  16. Re:our brains aren't wired to think in parallel on Is Parallel Programming Just Too Hard? · · Score: 1

    You've got to be kidding, or else you really are hard-wired to think in serial.

    He meant that you and other readers are reading these messages at the same time, hence you and the other readers are using a parallel system.

  17. Re:Next up... on Breakpoints have now been patented · · Score: 1

    There are certainly situations I use goto in, but this type of structured cleanup is not one of them. (There are other types of structured cleanup I use gotos for, just not this one).

    The code I've posted below is, imho, more elegant, easier to understand, and more future proof. Don't let the templates trip you up, I could've just as easily done this without templates using the guarenteed destruction of objects and malloc/free. I just used templates to allow for type safety and an allocator that throws on failure. (Obviously, my object code could just as easily work with return codes, I don't personally like retcodes though, except for certain, very narrow circumstances).

    // This object belongs to a family of objects that work by rolling back if ownership of the resource // still is held by the object at destruction time. This should only normally occur in failure cases.
    template <typename T>
    class ArrayAllocator
    {
            ArrayAllocator(int countToAlloc) : mAllocated(0) { mAllocated = new T[countToAlloc]; }
            ~ArrayAllocator() { if (mAllocated) delete [] mAllocated; } // For easy-to-read client code, no one should take ownership of allocated objects until // there are no further failure conditions possible. This same technique can be used for // ANY resource acquisition, whether it's an allocation of memory, grabbing a socket, mutex, // semaphore, reading a file, etc.
            T* TakeOwnership() { T* retVal = mAllocated; mAllocated = 0; return retVal; }

            T* mAllocated;
    }

    int allocstuff(void)
    { // If any fails, it'll throw an exception and the others will be cleaned up.
                    ArrayAllocator<char> aAlloc(100);
                    ArrayAllocator<char> bAlloc(100);

                    a = aAlloc.TakeOwnership();
                    b = bAlloc.TakeOwnership();

                    return 0;
    }

  18. Re:Another scripting language? on Beginning Lua Programming · · Score: 1

    Lua's not bad as a very trivial sort of scripting language, but the problem with it is that you cannot extend it with structures without writing underlying C code.

    That makes it a pretty poor choice to do anything that's fairly complex, because under the covers you're still going to write a significant amount of C. All the flexibility of a scripting language, all the danger of C code is not a place I like to spend my time.

    Lua is a tiny, tiny scripting language, which is pretty cool. However, it also has an equivalently tiny standard library. For the same 181K, I can get python embedded in my application. (I can then add pieces, ala carte, from the standard library).

    Most newer game engines are using python (or something with a very similar featureset) for their scripting needs as opposed to lua.

  19. Re:Art, art, and more art on Future Game Coders - Online Education or College? · · Score: 1

    You are simply wrong. Why do you think that game coders lament the fact that everytime we start a new game, we reinvent the camera? Hobby coding is just that, a hobby. It's totally different than doing it professionally.

    I'll give you a hint, it's not because we're reusing the stock engine for the game we just finished, or any other stock game engine, for that matter.

    As for the original question, get a four year college degree. Good fundamentals are the most important thing I care about when looking to hire someone. I think we've covered this topic pretty thoroughly already on slashdot (and my specific take).

  20. Re:Eeew, threads. on Pthreads vs Win32 threads · · Score: 4, Insightful

    These solutions are not equivalent. And the reason that fork/exec doesn't have the same problems as threading is because it can only (realistically) solve a subset of the problems that multithreading can solve.

    You have to consider the task you're working on before you decide whether you want to go with fork/exec or multiple threads.

    A sibling post mentioned the cost of creating new processes on windows, and that's definitely something to consider: it's quite expensive to do so on windows.

    However, the more important question is the problem you're working on solving.

    If you're working on a task that allows each drone to work without communicating with any of the other drones, then fork/exec is a possible candidate. If you're working on an application where you require even a minimal amount of synchronization between different drones, fork/exec is a huge, huge pain in the ass.

    An example of a good fork/exec app: webserver. One process deals with hearing the incoming connection, spawns off a new process to actually handle an individual connection. As a bonus, a single bad client connection will most likely NOT kill the whole webserver. (A malicious client will kill the process they've connected to, but probably none of the other processes, unless they manage to hang a database, etc).

    An example of a good multithreaded app: anything that plays lots of sounds (for a specific example, a game). There's lots of synchronization that has to go on here: threads have to be started (or more likely pulled from a pool) to play a sound, the threads playing the sound have to check back periodically to see if they should stop playing (or need to adjust their volume or other processing effects), they need to notify the originating thread when they have completed, etc. No one in their right mind would use fork/exec for this. Besides the high overhead of the process spawn on windows, you would need a process for each of the sounds playing, and you would need to use the OS interprocess communication apis to synchronize between the different processes (shared memory, global mutexes, or file pipes). Note that file pipes aren't sufficient for synchronization, so you'd still have to use OS mutexes to sync on.

    Yup.

  21. Re:Calibrate your BS detectors.. on Server Power Consumption Doubled Over Past 5 years · · Score: 1

    Yeah, I have to say that the numbers don't really make sense.

    In 5 years, server power has gone from 0.6% to 1.2% of the US' total energy usage.

    Is it a linear growth or a quadratic growth? (With two data points, I can say whatever I want, of course).

    So we can either expect server power usage to be either 1.8% of total energy usage (linear). Or, we can expect it to be 2.4% of our power usage (quadratic growth).

    Neither of these numbers seem like 40% to me. Of course, back in '99 we were all talking about how we were going to run out of IP address space, and that hasn't happened yet, either.

  22. Re:0-day? on Solaris Telnet 0-day vulnerability · · Score: 1

    Err, I think you're a bit mistaken.

    0-day wasn't about the site releasing the warez. It was about the apps. When the warez version was available on the day the application was released, it was considered '0-day.'

    Not that I'm into the scene or anything [anymore].

  23. Re:Phew! on RedOctane Speaks Out on Guitar Hero's Future · · Score: 1

    Dude, I hate to pick nits, but who do you think makes the controller for Guitar Freaks?

    None other than Red Octane. It's true. Go to your local arcade, check out the Guitar Freaks cabinet, and notice that Red Octane is credited for the guitar.

    So all Red Octane did in this instance was take technology they had already produced for another company, find a developer who would put an engine to it (one very similar to the engine they used in their existing--and great--games Amplitude and Frequency), and release it on the PS2.

    GH and GH2 are pretty good games, but they're hardly revolutionary. If anything, it's Harmonix who deserves all the credit here.

  24. NY: The Nanny State on 'Over 30' Section For Games Stores? · · Score: 1

    Seriously, I'm a grown man. I can decide what I can put in my body and what I put in my mind. I don't need the damn government telling me what I can eat, watch, play, or think.

    It's getting positively ridiculous. I'm so flustered that this is about the most coherent response I can come up with now. (Or maybe all the trans fats I ingested at dinner are just interfering with my brain chemistry).

    Remember when conservatives where for small government?

  25. Re:Substandard Pay? on Study Claims Offshoring Doesn't Cost US Jobs · · Score: 1

    Your views are honestly a little ridiculous. Simple economics dictate that $200K for anyone with a college degree is lunacy. Especially since a lot of people with college degrees actually suck.

    I've got 12 years of experience- and still spent the last 5 contracting because I couldn't find a real job.

    If you give me your address, I'll gladly purchase and send you one of these. It seems shockingly fitting.