C罗只是个传说 发表于 2020-4-16 13:13:39

拳头的战争迷雾不是什么新鲜玩意,csgo早已有之

A Potentially Visible Set (or Potential Visibility Set) is a collection of visleaves which might be visible from a given location. It is not a precise measure of visibility but thanks to being pre-compiled into a map is a very fast one. It forms the basis for many run-time tests, including networking filtering and rendering control.
See Visibility optimization for in-depth discussion of how leaves and the PVS work.
Console commands

r_novis<boolean>
Disables the PVS system, causing the whole world to be rendered at once.
r_lockpvs<boolean>
Prevents the PVS system from updating. Allows direct inspection "behind the scenes".
mat_wireframe<choices>
While not strictly PVS-related, wireframe mode does allow you to see leaves popping in and out of view.
sv_strict_notarget<boolean>
If set, notarget will cause entities to never think they are in the PVS.
test_randomizeinpvs<void>
To do
Programming

Clusters
To do: Difference between a cluster and a leaf.
int engine->GetClusterForOrigin( Vector origin )
Gets the cluster for the given origin.
int engine->GetClusterCount()
The number of clusters in the map.
Tip:ceil(engine->GetClusterCount() / 8.0f) returns the appropriate length for a PVS buffer in the current map.
int engine->GetAllClusterBounds( bbox_t *pBBoxList, int maxBBox )
Gets a list of all clusters' bounds. Returns total number of clusters. bbox_t is a struct containing a min and max Vector.
PVS
A PVS is stored in a byte buffer in which each bit represents the visibility of a cluster.
Bug: Testing an empty PVS can have unreliable results in some situations.
int engine->GetPVSForCluster( int cluster, int outputpvslength, byte* outputpvs )
Places the PVS for the given cluster in outputpvs. The return value is the number of bytes that were written; values in the rest of the buffer are undefined.
bool engine->CheckOriginInPVS( Vector origin, byte *checkpvs, int checkpvssize )
Determines whether the given location is within the given PVS.
bool engine->CheckB

C罗只是个传说 发表于 2020-4-16 13:13:39

Areas
Areas are completely separate collections of leaves, either set in stone by brushwork or created dynamically by closed areaportals (the latter of which PVS alone cannot account for).
int engine->GetArea( Vector origin )
Determine which area the origin is within.
void engine->GetAreaBits( int area, byte *bits, int buflen )
Get a bit buffer of which areas the given area can flow into.
int engine->CheckAreasConnected( int area1, int area2 )
Check whether area1 flows into area2 and vice versa. Result depends on areaportal state.
Note:Areaportals will close of their own accord depending on the position of the player. Area testing is therefore not always a good idea!
bool engine->GetAreaPortalPlane( Vector vViewOrigin, int portalKey, VPlane *pPlane )
Given a view origin (which tells us the area to start looking in) and a portal key, fill in the plane that leads out of this area (it points into whatever area it leads to).
void engine->SetAreaPortalState( int portalNumber, int isOpen )
void engine->SetAreaPortalStates( int *portalNumbers, int *isOpen, int nPortals )
Open or close one or many areaportals.

厄嗜淮聃_嗵 发表于 2020-4-16 13:13:39

csgo单纯的没把范围外的敌人的数据发到玩家端,跟拳头的那个还是有差别的

sleepy★ 发表于 2020-4-16 13:13:39

CSGO的加载范围大多了好吧

C罗只是个传说 发表于 2020-4-16 13:13:53

佛狱火宅 发表于 2020-4-16 13:14:01

游戏好玩吗

C罗只是个传说 发表于 2020-4-16 13:14:01

根据国外老哥的说法,vac曾经就是这么运作的(进行视野判定是否发送坐标信息),但是更新x光功能后失效了,后来csgo的faceit平台使用了这功能,但还是被绕过

泽以空 发表于 2020-4-16 13:14:01

这种看看就好了,就这么说吧,同一种东西valorant有精力做到一个月更新一次,csgo就只能4个月更新一次。那你就不能把他当做同一种东西了

无边细雨2 发表于 2020-4-16 13:14:01

还是多操心下重置版war3吧

无边细雨2 发表于 2020-4-16 13:14:01

CSGO这个东西没啥用吧
搜了几个视频,啥都透了
页: [1] 2
查看完整版本: 拳头的战争迷雾不是什么新鲜玩意,csgo早已有之