我有一些3d插值代码,占用了我项目运行时的90%,无法预先计算.
我可以使用哪些技术加快速度?算法或微优化?
这是感兴趣的人的代码.
它基本上采用放置在2个3d数组中的数据并插入其余数据.
编辑:此外,我已经将其拆分为更高级别的线程以提高性能,但这对Windows手机没有帮助,因为它们都是单核...
我可能会做一些像(Single [] DensityMap = new Single [128*128*128];)来删除多D阵列命中.我访问100个地方的数组,并希望不必这样做(包装在一个函数没有帮助,因为Windows手机不会内联函数调用,它没有帮助perf然后......)
float[, ,] DensityMap = new float[128, 128, 128];
float[, ,] PressureMap = new float[128, 128, 128];
unchecked
{
for (int x = 0; x < g_CraftWorldConstants.RegionSizeX; x++)
{
int offsetX = (x / SAMPLE_RATE_3D_HOR) * SAMPLE_RATE_3D_HOR;
int plusOffsetX = SAMPLE_RATE_3D_HOR + offsetX;
int poxox = plusOffsetX - offsetX;
double poxxpoxox = ((plusOffsetX - x) / (double)poxox);
double xoxpoxox = ((x - offsetX) / (double)poxox);
for (int y = …Run Code Online (Sandbox Code Playgroud) 我正在从完整的桌面.net将我的游戏移植到UWP,我需要解决的一件事是如何将纹理,着色器等加载到游戏的UWP版本中.
在桌面版本中,我使用FileSystemWatcher来执行此操作,但在UWP中不存在FileSystemWatcher,即使在我完全控制的目录中也是如此.
UWP有同等效力吗?
使用UWP中有限的API集来实现此目的的最佳方法是什么?
这个简单的扩展方法是一个矩形,例如纯?
如果没有,为什么不呢?如果是,为什么?
[Pure]
public static Rectangle InflateCopy(this Rectangle r, float horizontal, float vertical)
{
r.X -= (int)horizontalAmount;
r.Y -= (int)verticalAmount;
r.Width += (int)horizontalAmount*2;
r.Height += (int)verticalAmount*2;
return r;
}
Run Code Online (Sandbox Code Playgroud) 所以我有一些代码可以使用此代码在UWP应用程序(在Windows桌面和手机上运行)中拍照.
await _mediaCapture.CapturePhotoToStreamAsync(ImageEncodingProperties.CreateJpeg(), stream);
Run Code Online (Sandbox Code Playgroud)
它的效果很好,但它总是以设备的全分辨率拍摄图像......(Lumia 1020上的44万像素)对我来说太大了.我想将分辨率限制在固定大小(比如大约1600万像素).
那么有没有办法设置相机捕获分辨率,还是我必须以全分辨率捕获它并自己缩小尺寸?
c# ×4
xna ×3
uwp ×2
c#-4.0 ×1
monogame ×1
optimization ×1
performance ×1
windows ×1
windows-10 ×1