草庐IT

GL_HALF_FLOAT

全部标签

c++ - 通过 glTranslatef - OpenGL 在另一个位置重绘 gl_Quads

起初我有一个像这样的简单的白色直角棱镜:代码如下:glBegin(GL_QUADS);glColor3f(255,255,255);glVertex3f(0.3,0,2.5);//sisibawahglVertex3f(0.5,0,2.5);glVertex3f(0.5,0,2.6);glVertex3f(0.3,0,2.6);glVertex3f(0.5,0,2.6);//sisikiriglVertex3f(0.3,0,2.6);glVertex3f(0.3,1.5,2.6);glVertex3f(0.5,1.5,2.6);glVertex3f(0.5,0,2.5);//sisid

c++ - 写 foo(const float&) 是在浪费精力吗?

当传递像int或float这样的原始类型时,这样写是不是浪费了精力:foo(constfloat&);而不只是按值传递:foo(float); 最佳答案 为了花车?Yes,prettymuch.这里根本没有任何好处:float很小,复制不会比创建指针来实现引用慢。 关于c++-写foo(constfloat&)是在浪费精力吗?,我们在StackOverflow上找到一个类似的问题: https://stackoverflow.com/questions/210

c++ - 在 Qt 中创建原始 GL 上下文?

我在一个项目中使用Qt。它有一些QGLWidgets,它们工作得很漂亮。问题是,我有一些我想使用的遗留代码,它们使用原始OpenGL命令来执行一些纹理和网格处理(将网格渲染为图像等)。我想从我的Qt代码中调用这些函数,当然这需要我在调用OpenGL命令之前设置一个新的OpenGL上下文。我尝试执行以下操作:QGLContextcontext(QGLFormat::defaultFormat());std::cout但它不起作用。QGLContext::create()返回false。这是在Windows7上使用Qt4.8,编译时支持OpenGL。这是要求Qt为我创建新的OpenGL上下

c++ - Node C++ 插件 - 当类型化数组 (Float32Array) 作为参数传递时,如何访问它?

我想使用V8Float32Array数据结构。我该如何初始化它?我也对直接内存访问数据感兴趣。这怎么可能? 最佳答案 已更新现在最好的方法是使用助手Nan::TypedArrayContents.assert(args[i]->IsFloat32Array());Localmyarr=args[i].As();Nan::TypedArrayContentsdest(myarr);//Nowusedest,e.g.(*dest)[0]node-canvas中有一个很好的例子.原始答案,显示了帮助程序为何有用v8API现在变化很快,所以

c++ - 模板代码中的 float 或 double

下面的例子可能看起来很荒谬,但它是一个更大的高性能代码的一部分,在这个代码中所介绍的技术是有意义的。我提到这一点是为了防止有人怀疑XY问题——很可能不是。我有一个带有模板化/编译时操作数的函数:templateintmul(intx){returnM*x;}现在我想对double做同样的事情,这是-当然-不允许的:template//youcan'tdothat!intmul(doublex){returnM*x;}所以为了在编译时仍然放入double,我只看到以下解决方案://createmyconstantsstructSevenPointFive{staticconstexprd

c++ - AVX/SSE 回合向下 float 并返回整数 vector ?

有没有办法使用AVX/SSE获取浮点vector、向下舍入并生成整数vector?所有的floor内部方法似乎都产生了一个浮点的最终vector,这很奇怪,因为四舍五入产生了一个整数! 最佳答案 SSE可以从FP转换为整数,您可以选择截断(向零)或当前舍入模式(通常是IEEE默认模式,最接近平局舍入为偶数。像nearbyint(),与round()不同,其中tiebreak是远离0。如果您需要x86上的舍入模式,youhavetoemulateit,perhapswithtruncateasabuildingblock。)相关说明为

c++ - std::scientific 是否总是导致 float 的规范化科学计数法?

科学记数法定义了数字应该如何使用符号、数字和指数来显示,但它没有声明可视化是标准化的。一个例子:-2.34e-2(归一化科学计数法)与-0.234e-1(科学计数法)相同我能否依赖以下代码始终生成规范化结果?编辑:答案中指出的NAN和INF除外。templatestaticstd::stringtoScientificNotation(Tnumber,unsignedsignificantDigits){if(significantDigits>0){significantDigits--;}std::stringstreamss;ss.precision(significantDig

c++ - 最准确的线相交坐标计算与 float ?

我在给定横坐标x处计算直线上一点的纵坐标y。该线由其两个端点坐标(x0,y0)(x1,y1)定义。端点坐标是float,必须以浮点精度进行计算才能在GPU中使用。数学和天真的实现都是微不足道的。设t=(x-x0)/(x1-x0),则y=(1-t)*y0+t*y1=y0+t*(y1-y0)。问题出在x1-x0很小的时候。结果将引入取消错误。当与x-x0中的一个结合时,在除法中我预计t会出现重大错误。问题是是否存在另一种更准确地确定y的方法?即我应该先计算(x-x0)*(y1-y0),然后除以(x1-x0)吗?y1-y0的差异总是很大。 最佳答案

c++ - 在设备上的线性内存中循环二维数组时将 float* 转换为 char*

在CUDA4.0编程指南的第21页有一个示例(下面给出)来说明循环遍历设备内存中二维float组的元素。2D的尺寸是width*height//Hostcodeintwidth=64,height=64;float*devPtr;size_tpitch;cudaMallocPitch(&devPtr,&pitch,width*sizeof(float),height);MyKernel>>(devPtr,pitch,width,height);//Devicecode__global__voidMyKernel(float*devPtr,size_tpitch,intwidth,int

c++ - 如何在 C++ 中获取具有给定位模式(如 int32_t)的 float ?

我需要一种快速获取float的方法具有给定的位模式(提供为int32_t)。当然,编译器应该优化整个结构。简单转换执行强制转换和reinterpret_cast不允许... 最佳答案 编译器会优化它是不可靠的,但它避免了UB,前提是提供的值确实是float的表示(也就是说,它的大小正确并且它的位模式不包含陷阱表示float)。GCC至少有时能够优化它:floatconvert(int32_tinputvalue){floatf;std::memcpy(&f,&inputvalue,sizeof(f));returnf;}如果优化是问