Talk:Adding Motion Blur

From Valve Developer Community
Revision as of 05:33, 20 April 2006 by Ts2do (talk | contribs)

Jump to: navigation, search

view_scene.cpp \cl_dll\view_scene.cpp(1934) : error C2664: 'IMaterialVar::SetTextureValue' : cannot convert parameter 1 from 'IMaterial *' to 'ITexture *'

       Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast

\cl_dll\view_scene.cpp(1939) : error C2065: 'pMatMBlur' : undeclared identifier :(


With the fixes that were added, it should be working now. Make sure to get the latest code from here and try again. --Snakez

What am I doing wrong here?

I've followed the tutorial to the letter, but my poor C++ skills are letting me down, it seems :-(

Build errors: src\cl_dll\view_scene.cpp(71): error C2039: 'DoMotionBlur' : is not a member of 'CViewRender'

src\cl_dll\view_scene.cpp(73): error C2065: 'pp_motionblur' : undeclared identifier

src\cl_dll\view_scene.cpp(73): error C2228: left of '.GetInt' must have class/struct/union type type is unknown-type

.. and so and so forth.

Anyone know what i've done wrong? --JamesHarrison 05:59, 23 Aug 2005 (PDT)

I updated the tutorial.. add

 #include "materialsystem/materialsystemutil.h"

--Garry Newman 11:55, 6 Nov 2005 (PST)

Bug? Or Just some sort of glitch?

Every thing works good, great tutorial! However there is some kinda weird thing going on. all the breakable crates and just the breakable crates are doing a HOM effect instead of having their textures drawn. Has anyone else come across this? I did the tutorial exactly as it was presented so I'm not sure why it's doing this.

Precache?

How would one go about doing a precace on this texture, seeing that it is not a real metrial?

I have done a PrecacheMaterial( "HUDoverlays/frontbuffer" ); but MB is still laging on the first load...

  • Possibly because of this?: pMatScreen = materials->FindMaterial( "frontbuffer", TEXTURE_GROUP_OTHER, true );ts2do (Talk | @) 20:52, 11 Nov 2005 (PST)
    • that wont matter becuase my code has been changed to reflect the movement of the frontbuffer material

It isn't hitching when loading the material, it's hitching when creating the texture for some reason. Call the GetMoBlurTex0() function before it starts the game to create the texture there instead of in-game. --Garry Newman 03:28, 21 Nov 2005 (PST)

Velocity Sensitive Motion Blur?

How can this motion blur code be adjusted in accordance with the velocity of the player? In other words, how can the ferocity of the blur be increased or decreased when the player is accelerating or decelerating? --Adam Webb 09:55, 21 Dec 2005 (PST)


Bloom tutorial?

I'd love to see a similar tutorial on how you implemented bloom Garry :)

What about if I change map?

Dunno if anyone still reads this but anyway... I noticed some problems with the motion blur code when swapping levels. The blur won't behave very well untill the new map has been running for as long time as the last one. Wouldn't something like

if( (fNextDrawTime+pp_motionblur_time.GetFloat()*2) > gpGlobals->curtime )
fNextDrawTime = gpGlobals->curtime + pp_motionblur_time.GetFloat();

right after

if( gpGlobals->curtime >= fNextDrawTime ){...} 

inside

void CViewRender::DoMotionBlur( void )

be kind of smart to put in?

--Lorre 17:19, 28 Jan 2006 (PST)

  • This was fixed in an edit i made - it loads the blur as soon as the level is ran, and not starting from when the last levels finshed. - the edit was from code at chatbear --Amckern 19:57, 28 Jan 2006 (PST)

Motion Blur only Occur when pixels reach certain velocity

How would one go about to have the motion blur only draw/blur pixels that move at a certain speed value. In real life, motion blur only occurs when an object reaches a certain speed due to the human brain's reaction time.

This type of motion blur I'm talking about can be found in Next Gen Gaming.

Does anyone know which values I should edit and add in order to achieve this effect? --Brad Newsom 22:29, 19 Apr 2006 (PDT)

You should detect velocity ...if velocity is past a certain value, do the blur. you should also track eyeangle changes & find a delta & test it—ts2do 22:33, 19 Apr 2006 (PDT)