小编Dea*_*ean的帖子

具有实例化的 Three.js - 没有 FrustumCulling = false 就无法让它工作

我正在使用three.js和实例化(如本例所示),但我遇到了其他人报告的相同问题:对象被随机剪裁并不断从相机中消失

建议的解决方法是设置

my_instanced_object.frustumCulled = false;
Run Code Online (Sandbox Code Playgroud)

但这意味着每帧渲染每个对象,并且有很多对象会扼杀我的帧率。

我的替代方案是什么?如果我使用实例化,我怎样才能进行适当的视锥剔除?

我正在添加我正在使用的代码,以防有人想看看

var geometry = new THREE.InstancedBufferGeometry();
geometry.maxInstancedCount = all_meshes_data.length;

geometry.addAttribute( 'position', mesh.geometry.attributes.position );
geometry.addAttribute( 'normal', mesh.geometry.attributes.normal );
geometry.addAttribute( 'uv', mesh.geometry.attributes.uv );

var offsets = new THREE.InstancedBufferAttribute( new Float32Array( all_meshes_data.length * 3 ), 3, 1 );

for ( var i = 0, ul = all_meshes_data.length; i < ul; i++ ) { // Populate all instancing positions (where to spawn instances)
    offsets.setXYZ( i, all_meshes_data[i].x, all_meshes_data[i].y, all_meshes_data[i].z ); …
Run Code Online (Sandbox Code Playgroud)

javascript three.js

1
推荐指数
1
解决办法
1243
查看次数

D3D11_USAGE_STAGING,使用什么样的GPU/CPU内存?

我阅读了D3D11用法页面并来自CUDA背景我想知道标记为D3D11_USAGE_STAGING存储的纹理会是什么样的内存.

我想在CUDA中它会固定页面锁定的零拷贝内存.我测量了从ID3D11Texture2Dwith D3D11_USAGE_STAGING到分配的主机缓冲区的传输时间,malloc花了将近7毫秒(在流媒体/游戏中相当多),我认为这将是从GPU全局内存到内存区域所需的时间.

我的任何假设都是正确的吗?什么D3D11_USAGE_STAGING用作GPU内存?

windows directx gpu directx-11

1
推荐指数
1
解决办法
780
查看次数

从 int64 转换为 float64 是否安全?

据我所知 int64 可以在 Go 中的 float64 中转换,语言允许使用float64(some_int64_variable),但我也知道并非所有 64 位有符号整数都可以用 double 表示(因为 IEE754 近似值)。

我们有一些代码可以使用美分接收商品的价格int64并执行类似的操作

const TB                    = 1 << 40

func ComputeSomething(numBytes int64) {
    Terabytes := float64(numBytes) / float64(TB)
Run Code Online (Sandbox Code Playgroud)

我想知道这有多安全,因为并非所有整数都可以用双精度表示。

go ieee-754

-1
推荐指数
2
解决办法
169
查看次数

这个片段有什么问题?

我不知道这个片段有什么问题.我收到这个错误:

错误:成员函数'swap'不可行:'this'参数的类型为'const array',但函数未标记为const

#include <algorithm>
#include <memory>
#include <iostream>
#include <array>

struct MyClass {
  std::array<float, 4> arr;  
  float carr[4];

  std::array<float, 4> getArrElement() {
    std::array<float, sizeof(carr) / sizeof(float)> out;
    return out;
  }

  void fun() {
    auto vec = { getArrElement(), getArrElement(), getArrElement() };
    std::reverse(vec.begin(), vec.end()); // <-- error line here
  }


};

int main()
{
    MyClass obj;
    obj.fun();
}
Run Code Online (Sandbox Code Playgroud)

getArrElement没有返回一个const数组.auto应该推断,std::initializer_list但我也认为没有坏处.

怎么了?

c++ c++11 stdarray c++14

-2
推荐指数
1
解决办法
102
查看次数

vector :: reserve和内置类型

如果没有整体阅读,请不要将其标记为重复.这不是"std :: reserve做什么"的问题.

使用内置类型写入vector :: reserve'd地址是错误的吗?

vector<int> vec;
vec.reserve(10);
vec[5] = 24; // Is this an error?
Run Code Online (Sandbox Code Playgroud)

我知道对象没有被初始化,但由于这些只是整数而空间是由保留分配的,而这是在连续存储中完成的,这是一个错误吗?

c++ vector

-3
推荐指数
1
解决办法
79
查看次数

vector :: reserve有什么作用?

vector::reserve自尝试访问其数据以来实际上做了什么是错误?

vector<int> v.reserve(10);
v[4] = 22;
Run Code Online (Sandbox Code Playgroud)

如果这个分配的空间,它首先不应该是一个错误..如果它甚至没有分配空间怎么能"保留"?如何通知操作系统必须为矢量分配空间?

c++ vector

-5
推荐指数
1
解决办法
2013
查看次数

标签 统计

c++ ×3

vector ×2

c++11 ×1

c++14 ×1

directx ×1

directx-11 ×1

go ×1

gpu ×1

ieee-754 ×1

javascript ×1

stdarray ×1

three.js ×1

windows ×1