草庐IT

GL_HALF_FLOAT

全部标签

c++ - 如何在编译时静态生成 float 据?

鉴于我想对一些数据执行过滤,我如何才能避免在运行时生成这些数据,同时保持改变这些过滤器的大小和数据分布的灵active,同时保持漂亮干净的可重用代码。我知道我可以使用模板来执行如下操作:templateclassFilter{staticconstfloatf;staticconstFilternext;inlinefloat*begin(constFilter&el){return&f;}inlinefloat*end(constFilter&el){return(&f)+x+1;}};templateclassFilter{staticconstfloatf;inlinefloat

c++ - float1 与 CUDA 中的 float

我注意到cuda中有一个float1结构类型。与简单的float相比,是否有任何性能优势,例如,在使用float数组与float1数组的情况下?struct__device_builtin__float1{floatx;};在float4中有一个性能优势,这取决于场合,因为对齐是4x4bytes=16bytes。是否仅用于带有float1参数的__device__函数?提前致谢。 最佳答案 关注@talonmies对帖子的评论CUDAThrustreductionwithdouble2arrays,我比较了使用CUDAThrust计

c++ - float 的类内静态 const 初始化与 C++ 中的 int 有何不同?

我有一个包含staticconst成员的类,我正在类声明中对其进行初始化:#includeclassFoo{public:staticconstinti=9;staticconstfloatf=2.9999;};intmain(){std::cout当使用带有选项--std=c++11的GCC4.8.2编译时,它给出了这个编译错误:foo.cpp:7:32:error:‘constexpr’neededforin-classinitializationofstaticdatamember‘constfloatFoo::f’ofnon-integraltype[-fpermissive]

c++ - SDL_GL_SwapBuffers() 间歇性变慢

我正在开发一款sdl/opengl游戏,只是为了好玩。我平均得到了一个不错的fps,但是运动真的很不稳定,因为SDL_GL_SwapBuffers()会随机地花费大量的时间来处理。加载纹理并将其写入缓冲区有时会花费超过100毫秒!我删掉了很多代码,试图弄清楚这是否是我做错了什么,但我运气不佳。当我运行这个基本程序时,它有时仍会阻塞长达70毫秒。主要内容://Don'tforgettolinktoopengl32,glu32,SDL_image.lib//includes#include//SDL#include#include//Video#include"videoengine.h"

c++ - OpenGL GL_POLYGON_SMOOTH 二维抗锯齿从四边形创建三边形

更新:我在安装NVIDIAControlPanel时找到了它,如果我卸载它它会正常工作。当您在OpenGL中旋转四边形时,边缘会变得参差不齐。如果我调用glEnable(GL_POLYGON_SMOOTH),边缘会变得平滑,但OpenGL然后会在我的所有图像中绘制一条白色对角线,就好像它正在创建我的四边形的三元组一样。它是这样的:有没有办法禁用那条线,或者我可以用另一种简单的方法获得抗锯齿功能吗?我尝试了GL_MULTISAMPLE,但没有任何反应。在我的代码中还有:glShadeModel(GL_SMOOTH);glMatrixMode(GL_PROJECTION);glLoadId

c++ - 使用 GL_TRIANGLE_STRIP 或索引 GL_TRIANGLES 绘制动态数量的四边形是否更有效

我正在使用C++开发一个基于sprite的简单2D游戏,该游戏使用OpenGL进行硬件加速渲染,并使用SDL进行窗口管理和用户输入处理。由于它是一款2D游戏,我只需要绘制四边形,但由于Sprite的数量是动态的,我永远不能依赖于四边形的数量是恒定的。因此,我需要在每一帧通过我的VBO重新缓冲所有顶点数据(因为四边形可能比上一帧多或少,因此缓冲区的大小可能不同)。到目前为止,我的原型(prototype)程序会创建一个窗口,并允许用户使用向上和向下箭头键在对角线行中添加和删除四边形。现在我画的四边形是简单的、没有纹理的白色方block。这是我正在使用的代码(在OSX10.6.8和Ubun

c++ - 一种快速的、基于排名的 float 基数排序?

我正在寻找一个快速稳定的基数排序实现(支持float),它返回排序顺序的索引而不是排序值。PierreTerdiman的版本来自他的文章"RadixSortRevisited"完全符合我的要求,但它已有13年以上的历史,不适合现代流水线CPU。MichaelHerf的来自"RadixTricks"的RadixSort11速度非常快,唯一的问题是它返回排序后的值而不是索引,而且它会破坏输入数组的值。如有任何帮助,我们将不胜感激。 最佳答案 你可以展开每个项目以包含其原始索引(这可以在第一次计数过程中完成)。当然,出于排序目的,索引数字

c++ - 将 float 组图像转换为可用于 opencv 的格式

我想知道是否有一种简单的方法可以将我的float组图像转换为iplimage,这可以由opencv处理。当然,我可以创建一个具有相同大小的空iplimage,并将所有像素从我的float组图像复制到empltyiplimage,但是是否有更优雅的解决方案。也许是一种更快、内存消耗更少的方法,因为源图像非常大,复制过程需要一段时间。最好的问候,正音 最佳答案 你可以这样做(假设32位float):float*my_float_image_data;CvSizesize;size.height=height;size.width=wid

c++ - 如何将 float 转换为非标准编码

我正在编写一个创建ICC颜色格式的程序。这些格式指定了一种称为s15Fixed16Number的数据类型,它具有一个符号位、15个整数位和16个小数位。IEEE75432位float有一个符号位、8个指数位和23个小数位。我需要从文本框中获取输入,并将它们转换为s15Fixed16Number。一些搜索出现了this在谷歌书籍上,但这是在谈论将十进制数转换为s15Fixed16Number。我想我可以只使用链接中解释的方法,但我还没有进行任何测试来确定它的准确性。我想我也可以尝试转换从文本框中输入的字符,但我还没有考虑那么多。我正在使用Cocoa,但我认为这不重要;任何C函数都应该有效

c++ - 将 float 转换为 double 并返回 float 在 C++ 中给出相同的值吗

假设在下面的代码中floatf1=...;doubled1=static_cast(f1);floatf2=static_cast(d1);ASSERT(f1==f2);变量f1被初始化为非NaN的值。那么断言是否保证符合C++标准? 最佳答案 这里有一些线索,但不是答案:4.6Aprvalueoftypefloatcanbeconvertedtoaprvalueoftypedouble.Thevalueisunchanged.Thisconversioniscalledfloatingpointpromotion....4.8Ap