HL2源码分析(Render主线)

fohoo 2003-12-15 04:05:42
from: http://www.gameres.com/bbs/showthread.asp?threadid=3150 (还有点图)

希望可以让在看HL2的同志们省点时间

Author:fohoo
-------------------------------------------------------------------------------------------------
//render call back procedure:

CHost_RunFrame (engine.dll)

Host_RunFrame

_Host_Run_Frame

_Host_RunFrame_Render

Host_UpdateScreen

SCR_UpdateScreen

V_RenderView

g_clientDll->View_Render (engine.dll)

CHLClient::View_Render (client.dll)

CViewRender::Render

CViewRender::RenderView

ViewDrawScene

WaterDrawWorldAndEntities

CViewRender::ViewDrawScene_NoWater
(ViewDrawScene_AboveWater , ViewDrawScene_EyeUnderWater)

CViewRender::WaterDrawHelper
{
CViewRender::BuildWorldRenderLists (client.dll)
{
CVRenderView::BuildWorldLists (engine.dll)
{
CRender::BuildWorldLists
{
R_BuildWorldLists //Main entry points for starting + ending rendering the world
{
Shader_WorldSurface
}
}
}

CVRenderView::DrawIdentityBrushModel (engine.dll)
{
R_DrawIdentityBrushModel
{
Shader_WorldSurface
}
}
}

CViewRender::DrawWorld
{
CVRenderView::DrawWorldLists
{
CRender::DrawWorldLists
{
R_DrawWorldLists //Draws the list of surfaces build in the BuildWorldLists phase
{
Shader_WorldEnd
{
//some action as mesh.build, mesh.draw
}
}
}
}
}

DrawOpaqueRenderablesInWater
DrawOpaqueRenderable
CModelRender::RenderModel (engine.dll)
CStudioRender::DrawModel (studiorender.dll)
CStudioRender::R_StudioRenderModel
CStudioRender::R_StudioRenderFinal
{
IMesh.Draw
CShaderAPIDX8.DrawMesh
CMaterial.DrawMesh
IShader.DrawElement
...
{
IShaderAPI->BeginPass
IMesh->BeginPass
IShaderAPI->RenderPass
IMesh->RenderPass
D3D->DrawPrimitive()
}

}

}


...全文
110 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
fohoo 2003-12-16
  • 打赏
  • 举报
回复
3G吧
sakurar 2003-12-15
  • 打赏
  • 举报
回复
#define 请部 请问
sakurar 2003-12-15
  • 打赏
  • 举报
回复
请部HL2资源(1.3G那个)包解开有多大?
我看了一眼,每个15兆的包都有上万个文件,所以没敢解开。

8,302

社区成员

发帖
与我相关
我的任务
社区描述
游戏开发相关内容讨论专区
社区管理员
  • 游戏开发
  • 呆呆敲代码的小Y
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧