我只是想知道如何在HLSL中使用Texture2DArray.
我正在尝试实现一个模型加载器,其中模型具有不同的纹理量.目前我的HLSL使用尺寸为2的Texture2D(纹理和普通纹理),但由于我的模型具有不同数量的纹理,我希望使用Texture2DArray但不知道从哪里开始.我一直试图在互联网上找到例子,但没有运气:(
我加载纹理,编译为'ID3D11ShaderResourceView*'所以我应该创建一个变量ID3D11ShaderResourceView**我创建一个点到纹理的点数组,然后将其传递给着色器或什么?
有帮助吗?
我在服务器 - 客户端Winsock游戏中理解我如何实现Dead Reckoning有点困难.
我一直在互联网上寻找一个可靠解释的解释:
当消息应该从服务器发送到客户端时
如果客户端没有收到更新消息,它应该如何操作,它是否继续使用预测位置作为当前位置来计算新的预测位置?
我使用的航位推算方法是:
path vector = oldPosition - oldestPosition
delta time = oldTime - oldestTime
delta velocity = path vector / delta time
new delta time = current time / oldest time
new prediction = oldPosition + new delta time * delta velocity
Run Code Online (Sandbox Code Playgroud)
希望这是正确的配方!:)
还应注意连接类型是UDP,并且游戏仅在服务器上播放.服务器将更新消息发送到客户端.
有人可以帮我回答我的问题吗?
谢谢
只是关于DirectX11 Tessellation的问题.
在Hull Shader中,可以设置的最大曲面细分因子是64(不确定原因).现在虽然这对于小型飞机来说足够了,但对于大型飞机来说,它还不够,所以我想知道如何渲染大型飞机?
以下代码生成我的四边形,其中R
是半径:
vertices[0] = D3DXVECTOR3(-R, 0.0f, R); //Top left
vertices[1] = D3DXVECTOR3( R, 0.0f, R); //Top right
vertices[2] = D3DXVECTOR3( R, 0.0f, -R); //Bottom right
vertices[3] = D3DXVECTOR3(-R, 0.0f, -R); //Bottom left
vertices[4] = D3DXVECTOR3(-R, 0.0f, R); //Top left
vertices[5] = D3DXVECTOR3( R, 0.0f, -R); //Bottom right
indices[0] = 0;
indices[1] = 1;
indices[2] = 2;
indices[3] = 3;
indices[4] = 4;
indices[5] = 5;
Run Code Online (Sandbox Code Playgroud)
我确实通过将它放在循环中来修改它,以便在3x3网格中生成多个四边形.然而,当我将它传递给曲面细分着色器时,它适用于第一个四边形,但其他人搞砸了.
vector<D3DXVECTOR3> verts;
vector<D3DXVECTOR2> tex;
float R = 1000;
for(int …
Run Code Online (Sandbox Code Playgroud)