<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" media="screen" href="/App_Themes/default/rss.xslt"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:media="http://search.yahoo.com/mrss/" xmlns:evnet="http://www.mscommunities.com/rssmodule/"><channel><title>Comment Feed for Are Virtual Function Calls Still Expensive? (Coffeehouse on Channel 9)</title><atom:link rel="self" type="application/rss+xml" href="http://channel9.msdn.com/forums/coffeehouse/257148-are-virtual-function-calls-still-expensive/rss/default.aspx" /><image><url>http://mschnlnine.vo.llnwd.net/d1/Dev/App_Themes/C9/images/feedimage.png</url><title>Comment Feed for Are Virtual Function Calls Still Expensive? (Coffeehouse on Channel 9)</title><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/</link></image><description>Are Virtual Function Calls Still Expensive?</description><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/</link><language>en-us</language><pubDate>Fri, 24 Aug 2007 09:17:09 GMT</pubDate><lastBuildDate>Fri, 24 Aug 2007 09:17:09 GMT</lastBuildDate><generator>EvNet (EvNet, Version=1.0.3608.3122, Culture=neutral, PublicKeyToken=null)</generator><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;prencher wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;BR&gt;&lt;BR&gt;Yes, he did win. But he expended a whole lot more time and expertise to get it faster than Rico's basic C# application. That was the point of my post; If you're not an expert in the area, you will likely be able to get to your performance goals a lot easier and faster with e.g. XNA. &lt;BR&gt;&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;It's also worth noting that Rico really&amp;nbsp;only lost in the end because of the startup time of the CLR. For a small sample like that, it's pretty much inevitable that it will impact significantly on the overall run time. For a more meaty application the time taken to start the CLR would be considerably less important.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348451</link><pubDate>Fri, 24 Aug 2007 09:17:09 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348451</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348451/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>prencher wrote:﻿Yes, he did win. But he expended a whole lot more time and expertise to get it faster than Rico's basic C# application. That was the point of my post; If you're not an expert in the area, you will likely be able to get to your performance goals a lot easier and faster with e.g. XNA.&amp;#8230;</evnet:previewtext><dc:creator>AndyC</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348451/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;littleguru wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿Have you ever seen an intelligent fish &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-5.gifborder=0&gt; &lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;Yes, I have...they're called "game fish". They evade my hook more often than not... &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-6.gifborder=0&gt;&lt;BR&gt;&lt;BR&gt;I don't know how intelligent &lt;a href="http://en.wikipedia.org/wiki/Muskellunge"&gt;muskies&lt;/a&gt; are, but they do tend to survive a long time in most lakes and grow rather large (4-5 foot range in some cases).&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Yay. But they eat just everybody else :P The sharks or whales in our game tend to survive also very long ;)</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348449</link><pubDate>Fri, 24 Aug 2007 09:08:20 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348449</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348449/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿





littleguru wrote:

﻿Have you ever seen an intelligent fish  Yes, I have...they're called "game fish". They evade my hook more often than not... I don't know how intelligent muskies are, but they do tend to survive a long time in most lakes and grow rather large (4-5&amp;#8230;</evnet:previewtext><dc:creator>Christian Liensberger</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348449/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;littleguru wrote:&lt;/div&gt;&lt;div&gt;﻿Have you ever seen an intelligent fish &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-5.gifborder=0&gt; &lt;/div&gt;&lt;/BLOCKQUOTE&gt;Yes, I have...they're called "game fish". They evade my hook more often than not... :(&lt;BR&gt;&lt;BR&gt;I don't know how intelligent &lt;a href="http://en.wikipedia.org/wiki/Muskellunge"&gt;muskies&lt;/a&gt; are, but they do tend to survive a long time in most lakes and grow rather large (4-5 foot range in some cases).</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348383</link><pubDate>Thu, 23 Aug 2007 20:57:14 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348383</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348383/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>littleguru wrote:﻿Have you ever seen an intelligent fish  Yes, I have...they're called "game fish". They evade my hook more often than not... :(I don't know how intelligent muskies are, but they do tend to survive a long time in most lakes and grow rather large (4-5 foot range in some cases).</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348383/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿ 
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;littleguru wrote:&lt;/STRONG&gt; 

&lt;I&gt;﻿Tons of stupid fishes &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-2.gifborder=0&gt;&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;What? No AI ability?&lt;BR&gt;&lt;BR&gt;&lt;IMG src="http://channel9.msdn.com/emoticons/emotion-5.gifborder=0&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Have you ever seen an intelligent fish ;) They make sure not to collide, but sometimes they do and one gets eaten :P And well it was just 40 hours in total that we coded... The other dude really went into it... He enjoyed it so much&amp;nbsp;- you know: night sessions until 8-9 in the morning.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348347</link><pubDate>Thu, 23 Aug 2007 18:36:34 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348347</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348347/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿ 





littleguru wrote: 

﻿Tons of stupid fishes What? No AI ability?Have you ever seen an intelligent fish ;) They make sure not to collide, but sometimes they do and one gets eaten :P And well it was just 40 hours in total that we coded... The other dude really went&amp;#8230;</evnet:previewtext><dc:creator>Christian Liensberger</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348347/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;DigitalDud wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;blockquote&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;prencher wrote:&lt;/strong&gt;&lt;i&gt;﻿&lt;br&gt;In many ways it's similar with C# / C++.. For a lot of stuff C# can be faster, simply because it takes a lot of effort to make the C++ faster (See RicoM and Raymonds blog series where raymond did a C app and Rico did a C# one).&lt;br&gt;&lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;&lt;br&gt;&lt;br&gt;Yeah and Raymond ended up winning, no?&amp;nbsp; In my experience, the .NET JIT compiler does not optimize nearly as aggressively as does C compilers, like VC++.&amp;nbsp; It's limited by its requirement that it perform compilation in a very short amount of time.&amp;nbsp;&lt;br&gt;&lt;br&gt;Also with startup (especially cold) and memory footprint, C# will really lose here.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Yes, he did win. But he expended a whole lot more time and expertise to get it faster than Rico's basic C# application. That was the point of my post; If you're not an expert in the area, you will likely be able to get to your performance goals a lot easier and faster with e.g. XNA. &lt;br&gt;&lt;br&gt;Everything has it's place, obviously, and I'm a C++ buff myself, but you don't get significantly better perf "by default" by using C++, not by a long shot.&lt;br&gt;&lt;br&gt;In the case of games, at least the non-"AAA" titles, XNA is in many cases very fitting because the bulk of the performance depends on the graphics, and there XNA is very close to native.&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348344</link><pubDate>Thu, 23 Aug 2007 18:34:41 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348344</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348344/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>DigitalDud wrote:﻿prencher wrote:﻿In many ways it's similar with C# / C++.. For a lot of stuff C# can be faster, simply because it takes a lot of effort to make the C++ faster (See RicoM and Raymonds blog series where raymond did a C app and Rico did a C# one).Yeah and Raymond ended up winning,&amp;#8230;</evnet:previewtext><dc:creator>prencher</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348344/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;littleguru wrote:&lt;/div&gt;&lt;div&gt;﻿Tons of stupid fishes &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-2.gifborder=0&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;What? No AI ability?&lt;BR&gt;&lt;BR&gt;;)</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348341</link><pubDate>Thu, 23 Aug 2007 18:23:06 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348341</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348341/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>littleguru wrote:﻿Tons of stupid fishes What? No AI ability?;)</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348341/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;littleguru wrote:&lt;/div&gt;&lt;div&gt;﻿If you have some time try to have a look at paralax mapping and when you have enough of that at &lt;a href="http://en.wikipedia.org/wiki/Relief_mapping"&gt;relief mapping&lt;/a&gt;. &lt;a href="http://www.cg.tuwien.ac.at/courses/CG2/SS2002/Texturing_slides.pdf"&gt;Relief mapping is just awesome&lt;/a&gt;&amp;nbsp;(go to page 44 and following). It produces so nice outputs.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;Interesting...I'll have to check those out. Much of this also depends on the camera angle I pick...whether it is a FPS-type angle (from a ground perspective) or something elevated (like looking down at a 45 degree angle onto the terrain).</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348339</link><pubDate>Thu, 23 Aug 2007 18:21:35 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348339</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348339/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>littleguru wrote:﻿If you have some time try to have a look at paralax mapping and when you have enough of that at relief mapping. Relief mapping is just awesome&amp;nbsp;(go to page 44 and following). It produces so nice outputs.Interesting...I'll have to check those out. Much of this also depends on&amp;#8230;</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348339/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;ZippyV wrote:&lt;/div&gt;&lt;div&gt;﻿ 
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;littleguru wrote:&lt;/STRONG&gt; 

&lt;I&gt;﻿actually it were 2,000 to 10,000 triangles per fish...&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;That's a lot for a stupid fish.&lt;BR&gt;&lt;BR&gt;Off-topic: Have you guys seen the demo videos from Nvidia?&lt;BR&gt;&lt;BR&gt;Human head: &lt;a href="http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmv"&gt;http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmv&lt;/a&gt;&lt;BR&gt;&lt;BR&gt;Cascades (totally awesome water and pixel shader effect:&lt;BR&gt;&lt;a href="http://us.download.nvidia.com/downloads/nZone/videos/nzm_Cascades_tech.wmv"&gt;http://us.download.nvidia.com/downloads/nZone/videos/nzm_Cascades_tech.wmv&lt;/a&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;HOLY SH!T&lt;BR&gt;&lt;BR&gt;Pure awesomeness. We need screensavers like this!!</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348337</link><pubDate>Thu, 23 Aug 2007 18:17:02 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348337</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348337/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>ZippyV wrote:﻿ 





littleguru wrote: 

﻿actually it were 2,000 to 10,000 triangles per fish...That's a lot for a stupid fish.Off-topic: Have you guys seen the demo videos from Nvidia?Human head: http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmvCascades (totally awesome&amp;#8230;</evnet:previewtext><dc:creator>RoyalSchrubber</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348337/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;ZippyV wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;littleguru wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿actually it were 2,000 to 10,000 triangles per fish...&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;That's a lot for a stupid fish.&lt;BR&gt;&lt;BR&gt;Off-topic: Have you guys seen the demo videos from Nvidia?&lt;BR&gt;&lt;BR&gt;Human head: &lt;a href="http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmv"&gt;http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmv&lt;/a&gt;&lt;BR&gt;&lt;BR&gt;Cascades (totally awesome water and pixel shader effect:&lt;BR&gt;&lt;a href="http://us.download.nvidia.com/downloads/nZone/videos/nzm_Cascades_tech.wmv"&gt;http://us.download.nvidia.com/downloads/nZone/videos/nzm_Cascades_tech.wmv&lt;/a&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Tons of stupid fishes :D&lt;BR&gt;&lt;BR&gt;Off-topic: Now if they would be able to make the drivers work everything would be fine. It's nice to see how much research is going on in the areas and what they output. Nice videos.&lt;BR&gt;&lt;BR&gt;ATi has also some very &lt;a href="http://ati.amd.com/developer/demos/rhd2000.html"&gt;nice demo videos&lt;/a&gt;. Like the Ruby: Whiteout one.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348333</link><pubDate>Thu, 23 Aug 2007 18:12:08 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348333</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348333/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>ZippyV wrote:﻿





littleguru wrote:

﻿actually it were 2,000 to 10,000 triangles per fish...That's a lot for a stupid fish.Off-topic: Have you guys seen the demo videos from Nvidia?Human head: http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmvCascades (totally awesome&amp;#8230;</evnet:previewtext><dc:creator>Christian Liensberger</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348333/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿ 
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;DigitalDud wrote:&lt;/STRONG&gt; 

&lt;I&gt;﻿ 
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;thumbtacks2 wrote:&lt;/STRONG&gt; 

&lt;I&gt;﻿&lt;BR&gt;That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. &lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;Just use an octtree to subdivide volume, nice and simple for outdoor environments.&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;I'm looking at the whole gambit of data structures/containers out there...from octtrees to BSP trees to a bunch of other ideas. If it doesn't hinder performance, and doesn't take too long to implement, I may also try using a custom container.&amp;nbsp; It's not that I don't find use in BSP trees or things like that, but I want to experiment with a few things.&amp;nbsp; But the proof will be in the implementation, I guess.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;If you have some time try to have a look at paralax mapping and when you have enough of that at &lt;a href="http://en.wikipedia.org/wiki/Relief_mapping"&gt;relief mapping&lt;/a&gt;. &lt;a href="http://www.cg.tuwien.ac.at/courses/CG2/SS2002/Texturing_slides.pdf"&gt;Relief mapping is just awesome&lt;/a&gt;&amp;nbsp;(go to page 44 and following). It produces so nice outputs.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348329</link><pubDate>Thu, 23 Aug 2007 18:02:41 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348329</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348329/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿ 





DigitalDud wrote: 

﻿ 





thumbtacks2 wrote: 

﻿That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. Just use an octtree to subdivide volume, nice and simple for outdoor&amp;#8230;</evnet:previewtext><dc:creator>Christian Liensberger</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348329/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;DigitalDud wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;thumbtacks2 wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿&lt;BR&gt;That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. &lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;Just use an octtree to subdivide volume, nice and simple for outdoor environments.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;I'm looking at the whole gambit of data structures/containers out there...from octtrees to BSP trees to a bunch of other ideas. If it doesn't hinder performance, and doesn't take too long to implement, I may also try using a custom container.&amp;nbsp; It's not that I don't find use in BSP trees or things like that, but I want to experiment with a few things.&amp;nbsp; But the proof will be in the implementation, I guess.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348322</link><pubDate>Thu, 23 Aug 2007 17:51:41 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348322</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348322/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>DigitalDud wrote:﻿





thumbtacks2 wrote:

﻿That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. Just use an octtree to subdivide volume, nice and simple for outdoor environments.I'm looking at the whole&amp;#8230;</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348322/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿ 
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;littleguru wrote:&lt;/STRONG&gt; 

&lt;I&gt;﻿actually it were 2,000 to 10,000 triangles per fish... &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-1.gifborder=0&gt; I forgot to mention that. Btw. try also to use some features of MMX or SSE (or even SSE2)&amp;nbsp;if you can. That's also a booster in some areas.&amp;nbsp;&lt;IMG src="http://channel9.msdn.com/emoticons/emotion-1.gifborder=0&gt;&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;Thanks. Were those triangles complete with textures also? Or just shading? I have yet to check out your game, btw, but will probably do so at some point...&lt;IMG src="http://channel9.msdn.com/emoticons/emotion-11.gifborder=0&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;All textured! Pixel shader and vertex shader runs also on all the fishes and the ocean ground.&lt;BR&gt;&lt;BR&gt;Just download it and run it - no install required. And press F1 to get a little help (inlay) that shows you also the keys to switch into wireframe mode, switch the texture quality, mipmap quality, rendering mode (immediate mode, vertex arrays, VBOs), toggle frustum culling and shaders and switch through the available anisotropy levels. &lt;BR&gt;&lt;BR&gt;It's very nice to compare performance of the different featurs, since we always output the fps. :)</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348317</link><pubDate>Thu, 23 Aug 2007 17:50:55 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348317</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348317/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿ 





littleguru wrote: 

﻿actually it were 2,000 to 10,000 triangles per fish...  I forgot to mention that. Btw. try also to use some features of MMX or SSE (or even SSE2)&amp;nbsp;if you can. That's also a booster in some areas.&amp;nbsp;Thanks. Were those triangles complete&amp;#8230;</evnet:previewtext><dc:creator>Christian Liensberger</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348317/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;littleguru wrote:&lt;/div&gt;&lt;div&gt;﻿actually it were 2,000 to 10,000 triangles per fish...&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;That's a lot for a stupid fish.&lt;BR&gt;&lt;BR&gt;Off-topic: Have you guys seen the demo videos from Nvidia?&lt;BR&gt;&lt;BR&gt;Human head: &lt;a href="http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmv"&gt;http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmv&lt;/a&gt;&lt;BR&gt;&lt;BR&gt;Cascades (totally awesome water and pixel shader effect:&lt;BR&gt;&lt;a href="http://us.download.nvidia.com/downloads/nZone/videos/nzm_Cascades_tech.wmv"&gt;http://us.download.nvidia.com/downloads/nZone/videos/nzm_Cascades_tech.wmv&lt;/a&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348320</link><pubDate>Thu, 23 Aug 2007 17:49:56 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348320</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348320/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>littleguru wrote:﻿actually it were 2,000 to 10,000 triangles per fish...That's a lot for a stupid fish.Off-topic: Have you guys seen the demo videos from Nvidia?Human head: http://us.download.nvidia.com/downloads/nZone/videos/nzm_humanhead.wmvCascades (totally awesome water and pixel shader&amp;#8230;</evnet:previewtext><dc:creator>ZippyV</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348320/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;littleguru wrote:&lt;/div&gt;&lt;div&gt;﻿actually it were 2,000 to 10,000 triangles per fish... &lt;IMG src="http://channel9.msdn.com/emoticons/emotion-1.gifborder=0&gt; I forgot to mention that. Btw. try also to use some features of MMX or SSE (or even SSE2)&amp;nbsp;if you can. That's also a booster in some areas.&amp;nbsp;&lt;IMG src="http://channel9.msdn.com/emoticons/emotion-1.gifborder=0&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;Thanks. Were those triangles complete with textures also? Or just shading? I have yet to check out your game, btw, but will probably do so at some point...[H]</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348315</link><pubDate>Thu, 23 Aug 2007 17:41:26 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348315</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348315/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>littleguru wrote:﻿actually it were 2,000 to 10,000 triangles per fish...  I forgot to mention that. Btw. try also to use some features of MMX or SSE (or even SSE2)&amp;nbsp;if you can. That's also a booster in some areas.&amp;nbsp;Thanks. Were those triangles complete with textures also? Or just shading? I&amp;#8230;</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348315/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;littleguru wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿In our game (&lt;a href="http://www.liensberger.it/web/blog/?p=30"&gt;FishSalad&lt;/a&gt;) for university, we had like&amp;nbsp;60+&amp;nbsp;fishes (with 2,000-10,000&amp;nbsp;triangles and pixel + vertex shaders) on the screen. Each of these objects was an instance of a class that had virtual methods, because it inherited from a base class (our base model class). Well it worked very well. &lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;That's good to know...I also found a nice 175 slide presentation from SIGGRAPH 2003 &lt;a href="http://www.performanceopengl.com/perfogl_s2003.ppt"&gt;here&lt;/a&gt;.&amp;nbsp;It's a little outdated, and maybe the info is a rehash of techniques found elsewhere.&lt;BR&gt;
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;littleguru wrote:&lt;/STRONG&gt;

&lt;I&gt;﻿What's the biggest problem is the GPU. You need to make sure that stuff that is not in visible range is not drawn etc. That will higher your&amp;nbsp;fps a lot. &lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;actually it were 2,000 to 10,000 triangles per fish... :) I forgot to mention that. Btw. try also to use some features of MMX or SSE (or even SSE2)&amp;nbsp;if you can. That's also a booster in some areas.&amp;nbsp;:)</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348309</link><pubDate>Thu, 23 Aug 2007 17:25:01 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348309</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348309/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿





littleguru wrote:

﻿In our game (FishSalad) for university, we had like&amp;nbsp;60+&amp;nbsp;fishes (with 2,000-10,000&amp;nbsp;triangles and pixel + vertex shaders) on the screen. Each of these objects was an instance of a class that had virtual methods, because it inherited&amp;#8230;</evnet:previewtext><dc:creator>Christian Liensberger</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348309/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;prencher wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;BR&gt;In many ways it's similar with C# / C++.. For a lot of stuff C# can be faster, simply because it takes a lot of effort to make the C++ faster (See RicoM and Raymonds blog series where raymond did a C app and Rico did a C# one).&lt;BR&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Yeah and Raymond ended up winning, no?&amp;nbsp; In my experience, the .NET JIT compiler does not optimize nearly as aggressively as does C compilers, like VC++.&amp;nbsp; It's limited by its requirement that it perform compilation in a very short amount of time.&amp;nbsp;&lt;BR&gt;&lt;BR&gt;Also with startup (especially cold) and memory footprint, C# will really lose here.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348308</link><pubDate>Thu, 23 Aug 2007 17:21:46 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348308</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348308/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>prencher wrote:﻿In many ways it's similar with C# / C++.. For a lot of stuff C# can be faster, simply because it takes a lot of effort to make the C++ faster (See RicoM and Raymonds blog series where raymond did a C app and Rico did a C# one).Yeah and Raymond ended up winning, no?&amp;nbsp; In my&amp;#8230;</evnet:previewtext><dc:creator>DigitalDud</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348308/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;BR&gt;That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Just use an octtree to subdivide volume, nice and simple for outdoor environments.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348307</link><pubDate>Thu, 23 Aug 2007 17:12:42 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348307</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348307/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. Just use an octtree to subdivide volume, nice and simple for outdoor environments.</evnet:previewtext><dc:creator>DigitalDud</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348307/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿&lt;br&gt;&lt;blockquote&gt;&lt;table&gt;&lt;tr&gt;&lt;td&gt;&lt;img src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/td&gt;&lt;td&gt;&lt;strong&gt;littleguru wrote:&lt;/strong&gt;&lt;i&gt;﻿What's the biggest problem is the GPU. You need to make sure that stuff that is not in visible range is not drawn etc. That will higher your&amp;nbsp;fps a lot. &lt;/i&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/blockquote&gt;That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;Actually auto-culling is one of the most important areas of research in games because of the vast improvement they can produce to the FPS. Bear in mind that &lt;i&gt;lots&lt;/i&gt; of techniques can be used here, from bounding-box to bounding-sphere to internal culling and detail-removal. Most release games have many of these features running alongside each other, because a very fast render cycle will hide a multitude of sins.&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348289</link><pubDate>Thu, 23 Aug 2007 16:33:49 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348289</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348289/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿littleguru wrote:﻿What's the biggest problem is the GPU. You need to make sure that stuff that is not in visible range is not drawn etc. That will higher your&amp;nbsp;fps a lot. That's been a major consideration of mine as of late, because in this iteration, the engine (and the game)&amp;#8230;</evnet:previewtext><dc:creator>evildictaitor</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348289/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;littleguru wrote:&lt;/div&gt;&lt;div&gt;﻿In our game (&lt;a href="http://www.liensberger.it/web/blog/?p=30"&gt;FishSalad&lt;/a&gt;) for university, we had like&amp;nbsp;60+&amp;nbsp;fishes (with 2,000-10,000&amp;nbsp;triangles and pixel + vertex shaders) on the screen. Each of these objects was an instance of a class that had virtual methods, because it inherited from a base class (our base model class). Well it worked very well. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;That's good to know...I also found a nice 175 slide presentation from SIGGRAPH 2003 &lt;a href="http://www.performanceopengl.com/perfogl_s2003.ppt"&gt;here&lt;/a&gt;.&amp;nbsp;It's a little outdated, and maybe the info is a rehash of techniques found elsewhere.&lt;BR&gt;&lt;BLOCKQUOTE&gt;&lt;div&gt;littleguru wrote:&lt;/div&gt;&lt;div&gt;﻿What's the biggest problem is the GPU. You need to make sure that stuff that is not in visible range is not drawn etc. That will higher your&amp;nbsp;fps a lot. &lt;/div&gt;&lt;/BLOCKQUOTE&gt;That's been a major consideration of mine as of late, because in this iteration, the engine (and the game) will take place mostly outdoors.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348281</link><pubDate>Thu, 23 Aug 2007 16:17:30 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348281</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348281/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>littleguru wrote:﻿In our game (FishSalad) for university, we had like&amp;nbsp;60+&amp;nbsp;fishes (with 2,000-10,000&amp;nbsp;triangles and pixel + vertex shaders) on the screen. Each of these objects was an instance of a class that had virtual methods, because it inherited from a base class (our base model&amp;#8230;</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348281/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;Stebet wrote:&lt;/div&gt;&lt;div&gt;﻿Or use &lt;a href="http://www.kickingdragon.com/2006/07/25/opengl-vertex-buffer-objects-tutorial/"&gt;Vertex Buffer Objects&lt;/a&gt;. I think most video drivers translate display lists into VBO's internally anyways.&lt;/div&gt;&lt;/BLOCKQUOTE&gt;Thanks...I'll look into those also.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348280</link><pubDate>Thu, 23 Aug 2007 16:10:24 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348280</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348280/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Stebet wrote:﻿Or use Vertex Buffer Objects. I think most video drivers translate display lists into VBO's internally anyways.Thanks...I'll look into those also.</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348280/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;Minh wrote:&lt;/div&gt;&lt;div&gt;﻿In my game, &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=144500#144500&gt;Star Ranger&lt;/a&gt;, I used low poly models, had a generic (virtual calls) scene graph, used C++ to talk directly to DirectX, and I can't maintain vsync.&lt;br&gt;&lt;br&gt;That is, when I turned vsync on, sometimes it'd drop below 60fps &amp;amp; so the game stutters for a little bit, which I didn't think was possible w/ C++.&lt;br&gt;&lt;br&gt;I think it was because I didn't bother to batch any of my models, using a separate vertex buffer for each. I was gonna re-write it (doing better GPU management) w/ XNA, but just got side tracked. &lt;br&gt;&lt;br&gt;Wouldn't that be cool? An XNA game performing better than C++ ?&lt;br&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;br&gt;&lt;br&gt;The language is not gonna save you from bad coding.. Least of all C++. &lt;br&gt;&lt;br&gt;C# and XNA likely will perform a lot better than your average game because they've optimized it to be easy. Writing a lot of what XNA does manually takes serious effort, and should be left to people that have lots of experience optimizing. &lt;br&gt;&lt;br&gt;In many ways it's similar with C# / C++.. For a lot of stuff C# can be faster, simply because it takes a lot of effort to make the C++ faster (See RicoM and Raymonds blog series where raymond did a C app and Rico did a C# one).&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348274</link><pubDate>Thu, 23 Aug 2007 15:44:41 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348274</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348274/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Minh wrote:﻿In my game, Star Ranger, I used low poly models, had a generic (virtual calls) scene graph, used C++ to talk directly to DirectX, and I can't maintain vsync.That is, when I turned vsync on, sometimes it'd drop below 60fps &amp;amp; so the game stutters for a little bit, which I didn't think&amp;#8230;</evnet:previewtext><dc:creator>prencher</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348274/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>In my game, &lt;a href="http://channel9.msdn.com/ShowPost.aspx?PostID=144500#144500&gt;Star Ranger&lt;/a&gt;, I used low poly models, had a generic (virtual calls) scene graph, used C++ to talk directly to DirectX, and I can't maintain vsync.&lt;br&gt;&lt;br&gt;That is, when I turned vsync on, sometimes it'd drop below 60fps &amp;amp; so the game stutters for a little bit, which I didn't think was possible w/ C++.&lt;br&gt;&lt;br&gt;I think it was because I didn't bother to batch any of my models, using a separate vertex buffer for each. I was gonna re-write it (doing better GPU management) w/ XNA, but just got side tracked. &lt;br&gt;&lt;br&gt;Wouldn't that be cool? An XNA game performing better than C++ ?&lt;br&gt;</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348269</link><pubDate>Thu, 23 Aug 2007 15:16:06 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348269</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348269/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In my game, Star Ranger, I used low poly models, had a generic (virtual calls) scene graph, used C++ to talk directly to DirectX, and I can't maintain vsync.That is, when I turned vsync on, sometimes it'd drop below 60fps &amp;amp; so the game stutters for a little bit, which I didn't think was possible&amp;#8230;</evnet:previewtext><dc:creator>Minh</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348269/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>In our game (&lt;a href="http://www.liensberger.it/web/blog/?p=30"&gt;FishSalad&lt;/a&gt;) for university, we had like&amp;nbsp;60+&amp;nbsp;fishes (with 2,000-10,000&amp;nbsp;triangles and pixel + vertex shaders) on the screen. Each of these objects was an instance of a class that had virtual methods, because it inherited from a base class (our base model class). Well it worked very well. In games there are actually a lot of other things you should consider first. &lt;BR&gt;&lt;BR&gt;Like people (speaking of other groups) were loading 500 MB of textures and crap at the beginning of each level or some were loading the whole&amp;nbsp;background sound in, when the level started.&amp;nbsp;THAT was annoying!&lt;BR&gt;&lt;BR&gt;What's the biggest problem is the GPU. You need to make sure that stuff that is not in visible range is not drawn etc. That will higher your&amp;nbsp;fps a lot. Our CPU was always down at like 10-20 % when had vsync enabled. Now without vsync enabled we are at 150+ fps and 100% cpu.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348261</link><pubDate>Thu, 23 Aug 2007 15:07:05 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348261</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348261/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>In our game (FishSalad) for university, we had like&amp;nbsp;60+&amp;nbsp;fishes (with 2,000-10,000&amp;nbsp;triangles and pixel + vertex shaders) on the screen. Each of these objects was an instance of a class that had virtual methods, because it inherited from a base class (our base model class). Well it&amp;#8230;</evnet:previewtext><dc:creator>Christian Liensberger</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348261/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;thumbtacks2 wrote:&lt;/div&gt;&lt;div&gt;﻿ 
&lt;BLOCKQUOTE&gt;
&lt;TABLE&gt;

&lt;TR&gt;
&lt;TD&gt;&lt;IMG src="http://channel9.msdn.com/Themes/AlmostGlass/images/icon-quote.gif&gt;&lt;/TD&gt;
&lt;TD&gt;&lt;STRONG&gt;Minh wrote:&lt;/STRONG&gt; 

&lt;I&gt;﻿With games, optimizing for the video card is going to be much more crucial than optimizing for the CPU.&lt;BR&gt;&lt;BR&gt;For example, if you batch all the draws for those models (even if they have virtual calls), you would see much better result than if you draw those models separately (even if they don't have virtual calls).&lt;/I&gt;&lt;/TD&gt;&lt;/TR&gt;&lt;/TABLE&gt;&lt;/BLOCKQUOTE&gt;By "batching" the draws, I'm assuming you mean using &lt;a href="http://www.lighthouse3d.com/opengl/displaylists/"&gt;display lists&lt;/a&gt;&amp;nbsp;(I'm using OpenGL)...? I'm getting there....&lt;IMG src="http://channel9.msdn.com/emoticons/emotion-1.gifborder=0&gt;&lt;/div&gt;&lt;/BLOCKQUOTE&gt;&lt;BR&gt;&lt;BR&gt;Or use &lt;a href="http://www.kickingdragon.com/2006/07/25/opengl-vertex-buffer-objects-tutorial/"&gt;Vertex Buffer Objects&lt;/a&gt;. I think most video drivers translate display lists into VBO's internally anyways.</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348260</link><pubDate>Thu, 23 Aug 2007 15:06:05 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348260</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348260/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>thumbtacks2 wrote:﻿ 





Minh wrote: 

﻿With games, optimizing for the video card is going to be much more crucial than optimizing for the CPU.For example, if you batch all the draws for those models (even if they have virtual calls), you would see much better result than if you draw those&amp;#8230;</evnet:previewtext><dc:creator>Stef&amp;#225;n J&amp;#246;kull Sigur&amp;#240;arson</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348260/Trackback.aspx</trackback:ping></item><item><title>Re: Are Virtual Function Calls Still Expensive?</title><description>&lt;BLOCKQUOTE&gt;&lt;div&gt;Minh wrote:&lt;/div&gt;&lt;div&gt;﻿With games, optimizing for the video card is going to be much more crucial than optimizing for the CPU.&lt;BR&gt;&lt;BR&gt;For example, if you batch all the draws for those models (even if they have virtual calls), you would see much better result than if you draw those models separately (even if they don't have virtual calls).&lt;/div&gt;&lt;/BLOCKQUOTE&gt;By "batching" the draws, I'm assuming you mean using &lt;a href="http://www.lighthouse3d.com/opengl/displaylists/"&gt;display lists&lt;/a&gt;&amp;nbsp;(I'm using OpenGL)...? I'm getting there....:)</description><comments></comments><link>http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348255</link><pubDate>Thu, 23 Aug 2007 14:44:08 GMT</pubDate><guid isPermaLink="false">http://channel9.msdn.com/forums/Coffeehouse/257148-Are-Virtual-Function-Calls-Still-Expensive/?CommentID=348255</guid><evnet:views>0</evnet:views><evnet:viewtrackingurl>http://channel9.msdn.com/348255/WebViewBug.aspx?EVT=0</evnet:viewtrackingurl><evnet:previewtext>Minh wrote:﻿With games, optimizing for the video card is going to be much more crucial than optimizing for the CPU.For example, if you batch all the draws for those models (even if they have virtual calls), you would see much better result than if you draw those models separately (even if they don't&amp;#8230;</evnet:previewtext><dc:creator>thumbtacks2</dc:creator><slash:comments>0</slash:comments><wfw:commentRss></wfw:commentRss><trackback:ping>http://channel9.msdn.com/348255/Trackback.aspx</trackback:ping></item></channel></rss>