我正在使用以下数组 Array ( [0] => Array ( [id] => 6 [key] => SITE_NAME [value] => Webg Smarty CMS Small [name] => general [title] => website name [type] => text ) [1] => Array ( [id] => 32 [key] => PHONE_NUMBER [value] => 713-332-4675 [name] => general [title] => Phone Number [type] => text ) ) 我想显示[0] [value],[1] [value] 我正在使用fore
以下是关于 3d 的编程技术问答
我在STL文件中定义了一个3D形状,我想使用偏航,俯仰和滚动将其围绕其轴/中心>旋转.但是,我已经实施了一个解决方案,并且它无法正常工作,因为它将围绕原点轴的3D形状旋转而不是 .这是我到目前为止所做的(用php编写): function rotate($vertices, $roll = 0, $pitch = 0, $yaw = 0) { if(!empty($vertices)) { $cosa = cos($yaw); $sina = sin($yaw); $cosb = cos($pitch); $sinb = sin($pitch); $cosc = cos($roll); $sinc = sin($roll); $Axx = $cosa * $cosb; $Axy = $cosa * $sinb * $sinc - $
首先,我是3D编程和libgdx的新手. 我看了一些教程,已经渲染了我想要的场景.我有一些1x1x1块,每个可见面都用ModelBuilder.createRect()创建,因此,如果另一个块覆盖了此块的脸,则不会为此块创建矩形.另外,不需要顶部和底部矩形,因为我永远看不到它们(地板除外).所以我想,这是非常有效的.我也启用了Backface culling,我做Viewfrustum culling.但是,如果我朝着一个方向看,我的ViewFrustum中有许多块,则FPS降至15-20.这对我来说仍然可以,因为我的笔记本电脑已经5年了,而且其性能不是最好的,但是这个答案让我思考. "模型建立器仅用于调试".好的,但是我应该如何创建盒子?为什么要在模型应用程序(例如搅拌器)中为简单的正方形创建Model?通过这样做,我什至无法剔除被其他块占据的面孔. 所以我的问题是: 我如何以最有效的方式创建和渲染这些盒子? 解决方案 ModelBuilder#Cretect将为每个矩形
我知道OpenGL 4和3相当相似,尤其是3.1和4.1.两者本质上都是一起释放的,很难理解OpenGL 4.0/4.1的理由. 在OpenGL的先前发行版中,次要版本会向上增加,直到积累了新的主要版本为止. OpenGL 3.X和4.X引入了向后不兼容的API更改,然后openGL 3.2和3.3被认为是3系列的专门分支,而3.1与4.1+ 兼容时,它们不兼容. 与OpenGL 3.1相比,OpenGL 4.1提供了哪些关键差异,将其分类为新的主要版本? 奖金:在任何情况下,与GL3相比,任何差异都可以提高性能吗? ? 编辑:基于答案的一些额外发现 OpenGL 3.3是为了补充OpenGL 4.0,以将尽可能多的功能合并到较旧的硬件中.在OpenGL 3和4、3.3之间进行选择可能是一个更好的选择有时. 4.1添加了gl es 2.0兼容性和一些不错的功能. 将通过新的Tessellation着色器在管道中添加较大的工作流程差异之一.另一个将是多个
有标准的着色器功能库,例如 解决方案 没有可靠的资源可以告诉您各种标准的着色器功能需要多长时间.甚至没有特定的硬件. 这样做的原因与指令计划和现代着色器体系结构的工作方式有关.采用简单的sin函数.假设硬件具有特殊的硬件来计算值的正弦,因此它不会手动使用裁缝系列或其他内容.但是,我们还可以说,实际计算4个opcodes的顺序.因此,sin将采用" 4个周期". 然而,,所有这些操作码都是标量操作.因此,在进行他们的过程中,您实际上可能会有一些3矢量点产品,或者在某些硬件的情况下,4-vector Dot-Products同时进行,,在同一处理器上.因此,如果硬件具有带标量操作的4个矢量点产品,则执行A sin和矩阵矢量倍数所需的周期数量是...仍然是4. 那么sin操作的成本是多少?如果您取出矩阵乘数,则不会更快.如果您取出sin,则没有任何更快的速度.它要多少钱?您不能说,因为一次操作的成本无关紧要.唯一可测量的数量是着色器本身的成本. 最终,您所能做的就是尝
假设纹理,顶点和着色器数据已经在图形卡上,则您无需向卡发送太多数据.有几个字节可以识别数据,大概是4x4矩阵,有些是其他参数. 那么所有的开销来自哪里?操作是否需要与GPU进行某种握手? 为什么要发送一个包含一堆小型型号的单个网格,这些型号在CPU上计算出来,通常比发送顶点ID和转换矩阵快得多? (除非模型小于4x4矩阵,否则第二个选项看起来应该少发送数据) 解决方案 首先,我假设使用"绘制呼叫",您是指告诉GPU作为具有一定状态的三角形的一组顶点(着色器,混合状态等) ). 拨打电话不一定昂贵.在Direct3D的较旧版本中,许多呼叫需要上下文开关,这很昂贵,但是在较新版本中并不是这样. 进行更少的拨打电话的主要原因是图形硬件可以转换和渲染三角形要比提交的速度快得多.,如果您在每个呼叫中提交几个三角CPU和GPU大部分会闲置. CPU将无法足够快地喂食GPU. 用两个三角形进行一次抽奖电话很便宜,但是如果您在每个呼叫中提交太少数据,则您将没
我正在尝试使用三个.js库在屏幕上显示大量有色点(例如,大约为百万到百万).如果可能的话,我正在尝试使用帆布渲染器,而不是使用webGL渲染器(网页也将显示在Google Earth Client Bubbles中,它似乎与Canvas Renderer一起使用,但不能与WebGL渲染器一起使用.) ) . 我通过从 在这里 ,我在扩展之外遇到了麻烦. 但是在以下代码中使用webGL和粒子系统,我可以呈现一百万个随机点,但没有颜色. ... var particles = new THREE.Geometry(); var pMaterial = new THREE.ParticleBasicMaterial({ color: 0xFFFFFF, size: 1, sizeAttenuation : false
我需要在一张图片中绘制许多大小球.以下代码有效,但要运行的时间非常长. import matplotlib.pyplot as plt from mpl_toolkits.mplot3d import Axes3D import numpy fig = plt.figure() ax = fig.gca(projection='3d') ax.set_aspect('equal') u = numpy.linspace(0, 2*numpy.pi, 100) v = numpy.linspace(0, numpy.pi, 100) x = numpy.outer(numpy.cos(u), numpy.sin(v)) y = numpy.outer(numpy.sin(u), numpy.sin(v)) z = numpy.outer(numpy.ones(numpy.size(u)), numpy.cos(v)) for k in range(200): c = n
目标 我的目标是使用Python插入3D矢量场. 代码 原始矢量字段 import numpy as np import matplotlib.pyplot as plt # For interpolation from scipy.interpolate import RegularGridInterpolator #%% VECTOR FIELD xx, yy, zz = np.meshgrid(np.arange(-0.8, 1, 0.2), np.arange(-0.8, 1, 0.2), np.arange(-0.8, 1, 0.8)) uu = np.sin(np.pi * xx) * np.cos(np.pi * yy) * np.cos(np.pi * zz) vv = -np.cos(np.pi * xx) * np.sin(np.pi * yy) *
我经常使用3D CAD型号,我将其作为SolidWorks或PDF文件接收.我需要将它们变成黑色和白线艺术,就像您在专利申请中所发现一样. (实际上,恰好喜欢您在专利申请中找到的东西!) Acrobat-9允许我旋转和扩展模型,因此我可以通过合理的分辨率进行打印,但是我的其余绘图工具链与SVG文件交易,而我可以摆脱Acrobat的只是位图. (我还在搅拌机中从头开始制作模型,并在那里使用渲染过程制作线条图,但也会产生位图.) 是否有某种方法可以从3D视图到SVG图片(最好使用相对简单的曲线和缩放线权重)? (举例来说,想象一下我有一个三维数据集的3D模型.我根据需要将其定位,然后(某种程度上)将其转换为带有边缘的几条直线的SVG图像到边缘和相机/查看器之间的距离.) 解决方案 如果将视图作为pdf文件呈现要将PDF转换为SVG,如这篇文章. case there are no rendered PDF's available, you can 从CAD内部
我正在处理C#编写的Windows Forms .NET应用程序,该应用程序需要显示具有所有关联功能的3D PDF(旋转对象,更改灯等).我正在使用AxacroPDF COM控件,并且运行顺利.问题在于,当我尝试关闭放置控件的形式时,有时它悬挂了几秒钟,没有明显的理由在处置控件时.我在测试期间加载的3D文件并不是特别重.独立的Adobe读取器中的同一文件打开并关闭,没有特定的延迟. 我正在使用Windows表单关闭事件中的以下代码: private void DrawingForm_FormClosing(object sender, FormClosingEventArgs e) { this.axAcroPDF.Dispose(); Application.DoEvents(); CoFreeUnusedLibraries(); } [System.Runtime.InteropS
有没有办法将Adobe 3D-PDF文件转换为WebGL? 我搜索了网络,但找不到方法. Adobe 3D PDF文件的缺点是,只能在Internet Explorer中的浏览器中直接查看它们(也许是在Safari-不知道),但是如果您使用Firefox或Chrome,则需要下载文件并将其打开杂技演员.此外,您需要激活它,有时需要调整安全设置...而WebGL直接在现代浏览器中工作. 到3D PDF的导出来自Amira. 解决方案 实际上可以将3D PDF转换为WebGl. 您有多个选项: 3D PDF中的内容是U3D或PRC.使用各自的库读取数据并写入WebGL格式. 如果您可以访问并跳过3D PDF,则获得设计的3D模型,只需将该模型转换为WebGl. 使用箍,能够进行这种转换.
我想在3D矩阵(69,2640,7680)上应用PCA维度降低.我有69个2D矩阵的大小(2640,7680).我想将PCA应用于3D矩阵(69,2640,7680).我不该怎么做. 任何帮助将不胜感激. 代码: data=np.load('Normal_windows.npy') pca = PCA(n_components=1000) pca.fit(data) data_pca = pca.transform(data) print("original shape: ", data.shape) ##(69,2640,7680) print("transformed shape:", data_pca.shape) 解决方案 PCA在功能上有效,如果我理解正确,您有69个项目(2640,7680)功能吗? 如果是这种情况,那么您可以将最后两个维度弄平(例如: data_2d = np.ar
我有一个看起来像这样的数据集: India China Brasil Russia SAfrica Kenya States Indonesia States Argentina Chile Netherlands HongKong 0.0854026763 0.1389383234 0.1244184371 0.0525460881 0.2945586244 0.0404562539 0.0491597968 0 0 0.0618342901 0.0174891774 0.0634064181 0 0.0519483159 0.0573851759 0.0756806292 0.0207164181 0.0409872092 0.0706355932 0.0664503936 0.0775285039 0.008545575 0.03
我使用RGL软件包在R中做了一个交互式3D图.我希望能够将其发送(并将其保持互动)发送给同事,以便她可以在笔记本电脑上的会议上展示(旋转).有办法这样做吗? 这是我用来生成图的代码: 这是图: library(rgl) plot3d(pcaGB$x[,1:3], col=gbMeta2.5K$gbColor, type='s', size=1) 然后,我使用此代码将其导出到HTML,但到目前为止没有运气: browseURL(paste("file://", writeWebGL(dir=file.path("~/Documents/", "webGL"), width=700), sep="")) 这是我在浏览器窗口中回到的: 我也尝试使用WriteWebGl,但这在目录中使用index.html文件创建一个文件夹,该文件与浏览器中的图像打开相同的图像. 解决方案 您可以使用Knitr将交互式图导出到HTML.有关详细信息,请参见:,包括带
我正在使用自己的Java 3D游戏引擎,一切正常,但我遇到了一个错误. 我发现了这个错误,但我绝对不知道如何解决这个问题. 我已经用搅拌机来创建我的OBJ文件. 这是一个OBJ文件的录像. v 0.500000 -0.500000 -0.500000 vt 0.748573 0.750412 vn -1.000000 -0.000000 -0.000000 f 5/1/1 4/3/1 8/4/1 这些是我在屏幕上绘制对象所需的最相关的信息. 但是现在,当我创建我的obj文件时,我的脸看起来像这样: f 2//1 3//2 4//3 我的顶点,纹理和正常人看起来像是相同的,但是我的解析器在阅读脸时会遇到问题. 我的解析器退出复杂性,我认为在这里复制它不会有帮助. 我只需要一种将文件从一种类型转换为另一种类型的方法. 无论如何,Blender中是否有告诉它如何保存我的文件? 如果有人可以帮助我,我会很高兴. 问候, Finn 解决方案
我正在尝试制作具有视差效果的水平部分.在后台,应该有一个图像以与页面不同的速度滚动. 问题是:我希望视频元素包含在父元素中,因此父元素的工作方式像孩子的掩码一样:孩子只在父级的边界内可见. 我知道这可以通过在两个背景"高于"视差元素并妨碍的背景之间使用视差元素来实现,但是此方法不适用于我的情况. 想到的明显想法是使用溢出:隐藏在父母身上.但是,这打破了3D变换,因此没有剩余的视差. 如何实现所描述的效果? 这是一个codepen: . 我希望红色矩形在黑色边框的"视差范围内"之外不可见. 在 * { margin: 0; } html, body { height: 100% } main { position: relative; width: 100%; perspective: 1px; transform-
查看示例,当您单击元素时,它会从front到back旋转,问题是它不是在中心旋转,就像是不平衡的,将鼠标保持在front侧的左边框,单击元素,然后查看back端的位置现在如何关闭.它们应该位于完全相同的位置. 我注意到,当我卸下填充/边框/边框时,它会旋转良好,但是我需要在那里填充填充物和边框.有没有办法用填充和边框来执行此操作 - 以便它会绕中间旋转,而不是向侧面旋转? 解决方案 内部divs(#card div)太宽(235 + 50 + 2)和/或#card太窄(245).您必须在总宽度上添加填充和边框,或者或使用 box-sizing: border-box box-sizing: border-box (带有供应商前缀). 其他解决方案 您可以通过在"翻转" Div. #card .back { background: #DDD; margin-left: -40px; -webkit-transform: rotateY( 180deg )