|
|
[CN]
首先#include <com_model.h>,之后Hook HUD_DrawNormalTriangles函数,方法是在LoadClient里pExportFunc->HUD_DrawNormalTriangles = HUD_DrawNormalTriangles;
接下来一切都可以在HUD_DrawNormalTriangles函数里面进行了:
先用gEngfuncs.pfnSPR_Load读取一张纹理,然后gEngfuncs.GetSpritePointer获取纹理指针,写在一行就是:- model_t *MyTexture = (struct model_s *)gEngfuncs.GetSpritePointer( gEngfuncs.pfnSPR_Load( "sprites/320hud3.spr" ) );
复制代码 再接着就是用gEngfuncs.pTriAPI->SpriteTexture对纹理进行绑定然后设定一下渲染方案:
[EN]
Include com_model.h, and hook the function HUD_DrawNormalTriangles when load client. (pExportFunc->HUD_DrawNormalTriangles = HUD_DrawNormalTriangles;)
Use gEngfuncs.pfnSPR_Load to load a texture, and use gEngfuncs.GetSpritePointer to get the pointer:
- model_t *MyTexture = (struct model_s *)gEngfuncs.GetSpritePointer( gEngfuncs.pfnSPR_Load( "sprites/320hud3.spr" ) );
复制代码 Then use gEngfuncs.pTriAPI->SpriteTexture to bind the texture and set render solution:

[CN]
1.绘制出一个三角形
使用TRI_TRIANGLES来绘制三角形,使用TRI_QUADS来绘制四边形,使用TRI_QUAD_STRIP来连续绘制四边形从而拼出一个正方体。使用pTriAPI->Vertex3f指定出三个顶点坐标(直接使用世界坐标就行了),使用pTriAPI->TexCoord2f分配纹理
[EN]
1.Draw a Triangle
Use TRI_TRIANGLES to draw triangles, use TRI_QUADS to draw squares, use TRI_QUAD_STRIP to piece a cube. use pTriAPI->Vertex3f to point the vertexes(you can just write the world coordinates), use pTriAPI->TexCoord2f to set texture coordinates.

Preview:

2.绘制出一个正方形|Draw a Square:

Preview:

3.绘制出一个正方体|Draw a Cube:
顶点路径|Vertex Paths:

- gEngfuncs.pTriAPI->Begin( TRI_QUAD_STRIP );// 绘制四边形带[]
- // >> 正方体右面[]
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, 250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, 250.0f, 250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 1.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, -250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 1.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, -250.0f, 250.0f );
- // >> 正方体后面[]
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, -250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, -250.0f, 250.0f );
- gEngfuncs.pTriAPI->End();// 结束绘制[]
- gEngfuncs.pTriAPI->Begin( TRI_QUAD_STRIP );// 绘制四边形带[]
- // >> 正方体底面[]
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, 250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, -250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 1.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, 250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 1.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, -250.0f, -250.0f );
- // >> 正方体左面[]
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, 250.0f, 250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, -250.0f, 250.0f );
- gEngfuncs.pTriAPI->End();// 结束绘制[]
- gEngfuncs.pTriAPI->Begin( TRI_QUAD_STRIP );// 绘制四边形带[]
- // >> 正方体前面[]
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, 250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, 250.0f, -250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 1.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, 250.0f, 250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 1.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, 250.0f, 250.0f );
- // >> 正方体顶面[]
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 1.0f );
- gEngfuncs.pTriAPI->Vertex3f( 250.0f, -250.0f, 250.0f );
- gEngfuncs.pTriAPI->TexCoord2f( 0.0f, 0.0f );
- gEngfuncs.pTriAPI->Vertex3f( -250.0f, -250.0f, 250.0f );
- gEngfuncs.pTriAPI->End();// 结束绘制
复制代码
Preview:

|
|