草庐IT

Graphics

全部标签

c++ - 最接近three.js的完整原生库是什么?

我正在寻找最好的原生库,它在结构和简单性方面类似于three.js,但也具有足够的可扩展性以支持glsl着色器。要求:开放源代码或为可能的扩展/增强提供了很好的文档允许商业衍生/使用可以包含在物理库中,也可以轻松地与物理库配对。速度足以支持现代游戏图形。基于OpenGL或Mantle。(我不想被window困住。)Windows支持支持类似于three.js本地/世界坐标系的系统。光线转换支持进行碰撞检测。巨额奖金:支持Linux和OSX以及Windows。我正在寻找与Three.js尽可能接近的匹配项,它是用C++编写的,类似于three.cpp但已完成功能并且处于较低的beta/a

c++ - 光线追踪 - 折射错误

我正在写一个光线追踪器。到目前为止,我有漫射、Blinn照明和反射。我的折射出了点问题,我不知道是什么。我希望有人能帮助我。我有一个大的红色漫反射球+Blinn球体和一个折射率n=1.5的小折射球体。小的真的搞砸了。相关代码:ReflectiveSurface::ReflectiveSurface(constColor&_n,constColor&_k):F0(Color(((_n-1)*(_n-1)+_k*_k)/((_n+1)*(_n+1)+_k*_k))){}ColorReflectiveSurface::F(constPoint&N,constPoint&V)const{flo

c++ - 为什么 vulkan 在集成显卡和 GPU 的系统中报告单个设备?

在C++中,我正在检查可用设备的数量,如下所示:uint32_tdeviceCount=0;vkEnumeratePhysicalDevices(instance,&deviceCount,nullptr);cout这是打印出1GeforceGTX1070。我的系统配备GTX1070和带集成显卡的第4代英特尔5处理器。据我所知,这对于Vulkan来说应该足够好了。那么为什么我的程序只接收GTX1070?不应该也能找到集成显卡吗?编辑:根据cpuinfo的确切型号是:Intel(R)Core(TM)i5-4460CPU@3.20GHz编辑2:我的操作系统是Archlinux

c++ - 寻找合适的工具来编写 future 风格的 UI 项目

我一直受到动态的、future主义风格的用户界面的启发。我能描述的最好的是图形界面,例如最新的钢铁侠电影。虽然我不会构建一个完整的应用程序,但我想制作一些我计划进行交互的动画片段。也许有一天把它们放在一起做更大的东西。不可否认,我将来会用于音频处理,但无论如何,这不是重点,因为我不确定这是动画/图形。我知道可以在Adob​​eAfterEffects中制作此类动画。我只是很难思考要进行的过程(艺术性和可编程性)。在我自己研究这个的过程中,我获得了OGRE3D和Blender的基本经验。我已经在OGRE上导入并编译了网格,已经能够做一些基本的事情,比如围绕它移动网格。我开始认为我可能以错

c++ - 是否有一种有效的标准算法来栅格包括其内部区域的多边形

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:Rasterizinga2Dpolygon我需要光栅化一个多边形,包括它的内部区域(确定位于多边形内部的网格的所有图block)。目前,我通过使用简单的Bresenham来确定边界图block,但到目前为止我还没有有效的方法来栅格化多边形的“内部”(也可能是凹面)。到目前为止,我的方法是将图block范围限制为包含多边形的矩形,然后使用多边形缠绕算法确定每个图block中心是位于内部还是外部。这是非常低效的,因为它涉及检查每个图block的每个多边形边界段。从第一眼来看,肯定应该有一种更快的方法,例如……就像

c++ - 从正交投影平滑过渡到透视投影?

我正在开发一款由2个阶段组成的游戏,其中一个阶段具有正交投影,另一个阶段具有透视投影。目前,当我们在两种模式之间切换时,我们会逐渐变黑,然后在新的相机模式下返回。我将如何在两者之间顺利过渡? 最佳答案 可能有几种方法可以实现这一点,我发现最有效的两种方法是:将所有矩阵元素从一个矩阵跳到另一个矩阵。显然,考虑到所有因素,这都很有效。不过,我认为这种转变不会呈线性。你可以尝试给它一个缓动函数而不是线性插值Adollyzoom在去往/来自接近0视野的透视矩阵上。你会从正交矩阵跳到近0透视矩阵并将fov移到你的目标,并且可能会在你进行时大量

c++ - 图形 API 的包装器

我非常喜欢拥有一个具有适应能力的游戏引擎,不仅在它能做什么,而且在它如何处理新代码方面。最近,对于我的graphics子系统,我编写了一个class来重写,它的工作方式如下:classLowLevelGraphicsInterface{virtualboolsetRenderTarget(constRenderTarget*renderTarget)=0;virtualboolsetStreamSource(constVertexBuffer*vertexBuffer)=0;virtualboolsetShader(constShader*shader)=0;virtualbooldr

c++ - Vulkan 中的描述符集计数歧义

我想在vulkan中绘制两个对象。为实现这一点,我遵循为每个模型创建两个不同描述符集的过程。但是,我对指定所需描述符集计数的结构感到困惑。令我困惑的点如下:在VkDescriptorSetLayoutBinding指定描述符计数VkDescriptorSetLayoutBindingstagingLayoutBinding={};...stagingLayoutBinding.descriptorCount=1;在VkDescriptorPoolSize指定描述符计数VkDescriptorPoolSizestagingPoolSize={};...stagingPoolSize.de

c++ - OpenGL - 对象轮廓

我正在尝试实现选择大纲功能。这就是我目前的状态。如您所见,当鼠标悬停并在所选对象周围绘制轮廓时,对象被正确选择。我现在想做的是用这种方式勾勒出物体可见的边缘左图是我现在拥有的,右图是我想要实现的。这是我现在使用的程序。voidpaintGL(){/*...*/intw=geometry().width();inth=geometry().height();glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LESS);glEnable(GL_STENCIL_TEST);glStencilFunc(GL_NOTEQUAL,1,0xFF);glStencilOp(

处理 1,000,000 个 2D Sprite 的 C++ 2D 图形库?

我正在尝试做一个需要处理大量简单二维对象的项目,当然还需要绘制它们。为此,我需要一个可以处理大量“Sprite”的优秀C++库。我一直在试用Qt,因为我认为他们的“40,000芯片”演示非常令人印象深刻。然而,稍微玩一下,我的电脑似乎在管理160,000个芯片时遇到了很多麻烦。我不知道它为什么慢的技术细节(CPU?糟糕的OpenGL的GPU使用?Qt对大量项目不好?)因此,我一直在网上搜索适合我需要的库。但我找不到任何东西,主要是因为没有图书馆似乎会说“嘿,我擅长管理1,000,000个对象!”,但我确信有些图书馆比其他图书馆更有能力。我不需要像SDL这样“好”的库,如果我没有操纵杆支