这个原理实际上就是阴影图,像素级自然最精确了。
废话不多说,上源码
UGameViewportClient * clientView = GWorld->GetGameViewport();
FViewport* InViewport = clientView->Viewport;
float X = InViewport->GetMouseX();
float Y = InViewport->GetMouseY();
HHitProxy* HitProxy = InViewport->GetHitProxy(X, Y);
if (nullptr == HitProxy)
{
return nullptr;
}
if ( HitProxy->IsA(HActor::StaticGetType()))
{
HActor* ActorHit = static_cast<HActor*>(HitProxy);
if (ActorHit->Actor != NULL)
{
AActor* theActor = ActorHit->Actor;
return theActor;
}
}
return nullptr;
分割线:
-------------------------------------
其实,这项技术在dx11中就有了,cpu和gpu互传
在
typedef struct D3D11_TEXTURE2D_DESC
{
...
D3D11_USAGE Usage里面
....
}
看来要想玩好ue4,必须底层要搞好,DX和pbr在试用期过后还得搞搞,才能真正发挥ue4的强大