游戏开发论坛

 找回密码
 立即注册
搜索
查看: 14486|回复: 14

(原创)HL2源码分析(Render主线)

[复制链接]

18

主题

92

帖子

122

积分

注册会员

Rank: 2

积分
122
发表于 2003-12-15 14:45:00 | 显示全部楼层 |阅读模式
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:rawIdentityBrushModel (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()
                                              }
   
                            }

}
sf_2003121514453.jpg

18

主题

92

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2003-12-15 14:46:00 | 显示全部楼层

Re: (原创)HL2源码分析(Render主线)

sf_20031215144622.jpg

18

主题

92

帖子

122

积分

注册会员

Rank: 2

积分
122
 楼主| 发表于 2003-12-15 14:51:00 | 显示全部楼层

Re: (原创)HL2源码分析(Render主线)

sf_20031215145112.jpg

2

主题

12

帖子

14

积分

新手上路

Rank: 1

积分
14
发表于 2003-12-15 16:25:00 | 显示全部楼层

Re:(原创)HL2源码分析(Render主线)

好久都没有人来发帖子了,可能都在研究HL2源码去了,呵呵,谢谢这位兄弟发的源码分析,虽然我看不懂! :)

1

主题

10

帖子

10

积分

新手上路

Rank: 1

积分
10
发表于 2003-12-20 00:29:00 | 显示全部楼层

Re:(原创)HL2源码分析(Render主线)

感谢共享

4

主题

63

帖子

82

积分

注册会员

Rank: 2

积分
82
QQ
发表于 2003-12-27 13:44:00 | 显示全部楼层

Re:(原创)HL2源码分析(Render主线)

我顶!!真是个好帖,不过UML图好象不是很完整啊。

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2003-12-31 14:04:00 | 显示全部楼层

Re:(原创)HL2源码分析(Render主线)

可惜OPENGL的渲染没找到,要是哪位兄弟写个OPENGL的渲染就好了。

28

主题

685

帖子

703

积分

高级会员

Rank: 4

积分
703
发表于 2003-12-31 14:05:00 | 显示全部楼层

Re:(原创)HL2源码分析(Render主线)

可惜OPENGL的渲染没找到,要是哪位兄弟写个OPENGL的渲染就好了。

41

主题

340

帖子

345

积分

中级会员

Rank: 3Rank: 3

积分
345
发表于 2003-12-31 16:59:00 | 显示全部楼层

Re:(原创)HL2源码分析(Render主线)

它是用D3D渲染的!

12

主题

47

帖子

52

积分

注册会员

Rank: 2

积分
52
发表于 2004-1-23 22:46:00 | 显示全部楼层

Re: (原创)HL2源码分析(Render主线)

代码中是有OpenGL渲染模块的。大家仔细找找啊。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

作品发布|文章投稿|广告合作|关于本站|游戏开发论坛 ( 闽ICP备17032699号-3 )

GMT+8, 2024-5-20 06:51

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表