我如何告诉frag-shader在外部生成的3D文件的每个顶点使用哪种纹理(以前加载的许多纹理)?
我试图找出将纹理3D模型加载到我的WebGL应用程序中的最佳方法,但我对此有一些麻烦.我的3D型号具有1个以上的纹理,我不知道如何告诉着色器每个顶点使用哪种纹理,因为我到目前为止所研究的3D文件似乎还没有包含在此信息中. 我举一个例子:我为搅拌机中的皮革座椅/垫子建模了木椅.我应该出口哪种格式,以使提取椅子易于提取: - Vertice位置; - 面部/索引信息定义哪个顶点属于每个脸部. - 紫外线坐标; - 正常 - 纹理文件名称/位置. - 每个顶点使用哪种纹理. 我假设一旦我在JS中有顶点textureid对,我可以将其作为属性(基于每个vertex)传递给着色器,让它知道该特定顶点要使用的纹理一次),但我不知道该如何开始这些信息. 到目前为止,我在Web上找到的所有文章,Howtos和教程仅具有1个纹理.我还注意到三分似乎已经解决了这个问题,但是我有点想直接在WebGL上使用它,然后再进入这些库之一(例如Thrim.Js,Glge,caste.sj,spider.sj
0 2023-11-30
编程技术问答社区
在场景中定位儿童对象(汽车<->车轮层次)。
我需要将汽车型号添加到场景中,将车轮作为分离的对象,以便易于旋转和可能更换.问题是车轮定位 - 它们需要在与汽车车身有关的确切位置.如何以正确的方式进行?在WebGL演示和触发中,有现有的车轮位置 - 它们是3D场景的预定义 - 但是如何?这些位置可以以某种方式映射到搅拌器模型坐标吗? 我试图将一个轮子与身体分开,将枢轴点设置为中心,节省坐标并将车轮网格添加到三个.JS场景中施加搅拌器位置(当然是缩放) - 但是比例似乎不匹配. 我找到了带有层次结构导入的OBJLOADER,但它是非核心三. 谢谢. 解决方案 您可以尝试将所有汽车元素放在不同的THREE.Object3D中: 汽车模型 左前轮 右前轮 左后轮 左后轮 通过将每个元素添加到新THREE.Object3D中,您将为每个元素获得一个新的枢轴点(它将简化进一步的移动和旋转命令).您必须记住要根据其父级设置正确的元素位置(THREE.Object3D). 然后,您只需将2
0 2023-11-30
编程技术问答社区
Three.js导出的Blender模型中的材料不工作
我正在尝试使用用搅拌机创建的三个模型.JS模型非常基本,两个立方体彼此之间.一个立方体是红色的,另一个是绿色的. 我已经使用搅拌机出口商插件导出了模型. loader.load("model.js", function ( geometry, material ) { material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } ); mesh = new THREE.Mesh( geometry, material); scene.add(mesh); animate(); }); 没有任何问题,如 > 但是,当我删除该行时: material = new THREE.MeshBasicMaterial( { color: 0xFF0000 } ); 使用模型的材料.产生三个错误的错误: TypeError:程序不确定[打破此错误] p_unifo
0 2023-11-30
编程技术问答社区
Morph Targets Three.js
我正在尝试开始使用变形目标和三个.但是,似乎没有太多关于此主题的文档. 当我看源代码时,morphTargetInfluences[]似乎是魔术. 这是如何工作的?我该如何使用?价值是1个全强度吗?我如何区分同一模型上的不同变体目标? 我只是想了解morphTargetInfluences[] 预先感谢 解决方案 变形目标是它们之间自动插值的几何顶点位置集.您可以使用用morphTargetInfluences[0], morphTargetInfluences[1], morphTargetInfluences[nSet]编写的不同顶点位置实时更改几何外观.您可以同时混合许多几何形状的外观(morphtargetinflence).最好的方法是JSONLOADER格式,WCHICH您可以从3DSMAX导出:frame0 as morphTargetInfluences[0],frame1 as morphTargetInfluences[1],ect.
2 2023-11-30
编程技术问答社区
从Blender导出一个带有纹理的简单模型到three.js中
注意:我想避免在JavaScript代码中修改模型,并在Blender内部进行所有模型设计. 注释#2:虽然这个问题很长,但实际上是一个基本问题(标题说明了一切).以下是问题的"步行". 我正在尝试将搅拌机模型导出到 trixjs.org 作为DAE模型,但对具有纹理的模型有问题(我尝试过JSON和OBJ+MTL格式): 使事情变得更简单,以下是我执行的步骤(并且失败)将纹理添加到包含多维数据集,相机和光的简单"启动文件"中: 选择立方体 在材料面板中,请确保选择该立方体的默认材料. 在纹理中面板,确保选择" Tex"(材料的默认纹理). 对于此纹理,设置类型 to"图像或电影" 在面板的图像部分中,打开一个grass1.jpg(512x512图像)作为纹理. 在映射部分中,将坐标更改为uv. 将模型导出为 Collada 模型,检查"包括紫外线纹理","包括材料纹理"和"复制"复选框. 您可以然后,我使用以下代码加载DAE模型,但是我遇到了此错误
2 2023-11-30
编程技术问答社区
是否有一种3D格式,它是SVG的3D扩展?
SVG是2D矢量图形的W3C标准.有些扎实的东西.有3D版的SVG吗?它的一种扩展,因此从.svg转换为.ext和反向是非常直接的. 解决方案 否,作为W3C的一部分,没有这样的标准扩展名. 最接近的是W3C社区小组, . 社论:也不应该.虽然SVG很棒并且向量很棒,但它是一种演示格式,而不是您寻找3D时的数据交换格式.例如,SVG的画家模型描述了元素的视觉分层,这一概念与向量数据无关.同样,在填充和中风/不透明度上的表现标记,而不是材料等元数据.尽管这不是恕我直言的好格式,但您应该查看 collada 如果您想要3D数据的基于XML的文件格式. 其他解决方案 如果SVG的W3C功能至关重要,我什么都不知道.而且,如果您想通过更改一些外部标签并独自离开其余标签来将SVG图形缩成3D,我也不知道任何东西. 但是,如果您喜欢SVG的内容是它是可以在浏览器中渲染的2D图形的声明语言,此外,这些对象是"持久"的,因为您可以更改DOM和DOM和DOM中的属性该更改
0 2023-11-26
编程技术问答社区
如何将Blender blend(或obj)文件转换成Qualcom Vuforia .h文件
我正在使用Qualcomm Vuforia开发具有增强现实的iOS应用程序,并且很难理解如何从Blender(或其他软件)创建3D模型.所有示例都将.h文件与顶点的坐标一起生成即茶壶. 我找不到文档对我有用. 是否有一个工具可以将.blend或.obj文件转换为.h(OpenGL ES)? 谢谢 解决方案 我开发了一个名为 mtl2opengl 的脚本基于项目 obj2opengl .该脚本可与 .obj 和.mtl文件一起使用,我认为可以直接从搅拌机导出,并使用顶点数据生成 .h 文件.我在iOS增强现实应用程序中广泛使用它(尽管我还没有使用Vuforia SDK),并且随附的资源也包括一个示例Xcode项目.希望它有帮助! 其他解决方案 您应该在这里查看Blendervuforiaexport(由我的同事开发): https://github.com/stickybeat/blendervuiaexport 它将对象从搅拌机导出到Vuforia示例项
0 2023-11-26
编程技术问答社区
比较向量列表
我需要比较 两个向量列表,然后将其等于 ,例如: veclist1 = [(0.453 , 0.232 , 0.870), (0.757 , 0.345 , 0.212), (0.989 , 0.232 , 0.543)] veclist2 = [(0.464 , 0.578 , 0.870), (0.327 , 0.335 , 0.562), (0.757 , 0.345 , 0.212)] equalelements = [(0.757 , 0.345 , 0.212)] obs: order elements 没关系! 以及,如果可能 但是没有舍入或缩短它们.是否可以 ? 提前提前! 解决方案 # Get new lists with rounded values veclist1_rounded = [tuple(round(val, 2) for val in vec) for vec in veclist1] veclist2_rounded = [
2 2023-11-17
编程技术问答社区
在Unity中缩小Blender模型时变黑了
我在搅拌机中制作了一个模型,我想将其导入统一. 在全面导入搅拌机时,颜色正确显示: 但是,我需要将其缩小(原始型号非常大).当我这样做时,所有颜色都变黑了.突然之间,曾经通过一个看似任意的门槛: 我尝试在搅拌机中解开紫外线,并固定正态(内部和外部).但这并不能解决这个问题. 这可能是什么原因? 解决方案 请尝试使用比例因子在导入设置上使用0.1(默认). 如果它不起作用,如何将着色器更改为标准/颜色? 也许问题来自着色器由于浮点精度无法处理小规模.
0 2023-11-08
编程技术问答社区
Blender的纹理在Unity 3D中没有出现
我已经无休止地搜索了这个问题的答案.但是,我在搅拌机中创建了一个模型,并将其直接以.fbx导出到统一.但是我在搅拌机中应用的纹理并不能以统一性呈现(即使在预览屏幕中).我已经解开了该模型,并创建了一个自定义纹理模式以适合.我已经将纹理插入了统一性,但是这只是使他们加载了统一的感觉,而不是我希望它看起来. 我试图将其添加为.Blend文件,但是Blender崩溃了,并且无法以Unity转换为.fbx文件.该型号是墙壁,有3个门口和3扇门.墙有自己的质地,门都具有相同的质感. (我上传图像,但赚取足够的代表). 有一个简单的解决方案吗?还是我要看整个过程并缺少重要的东西? 解决方案 UV解开模型后,您将UV保存在Blender中的文件中,您应该以Unity将该文件作为纹理应用于您的模型,您将完成,请告诉我,如果您已经完成了此操作. 在这里 . 其他解决方案 我最好将其导出为波前对象.在转换选择路径模式下:复制,您应该获得材料.
4 2023-11-08
编程技术问答社区
如何从Blender导出.dae动画?
我正在练习Blender中的动画,因此我下载了汽车的.dae文件,并对它实施了一些动画.我想让汽车打开并关闭门,然后设法这样做(将密钥帧插入). 问题是,当我导出到.dae 时 File -> Export -> DAE 并导入它,查看动画是否保存: File -> Import -> DAE ,但无能为力. 有什么办法可以导出并将动画视为.dae文件?* P.S.我希望它将其导出为.dae文件,因为我想在arkit上使用它. 解决方案 首先,您需要 烘烤动画曲线 的3D模型.使用 Bake Action : Bake Action 工具将将插值框架应用于单个密钥帧中.这对于像步行周期一样将偏差添加到循环作用中很有用.这也对由驱动程序或约束创建的密钥帧动画也很有用. 其次,使用观看烘烤最终动画 youtube tutorial. 希望这会有所帮助.
14 2023-11-08
编程技术问答社区
发出在搅拌机中创建的资产的问题
基本上,我是创建了一个VR游戏,必须从校园周围创建建筑物资产.我以前从未做过这个,所以我很新/对Unity/Blender非常了解. 每当我将资产导入统一时(无论是将其拖放到Unity内部的资产文件夹中,还是将其导出为.fbx并以Unity导入),我都会损失大约一半的建筑物. 任何帮助都将不胜感激...我敢肯定我已经遗漏了许多需要的信息.如果需要,我也可以提供文件... 谢谢. 编辑:它也没有附带的材料,因此不能成为问题 编辑2:好吧,显然我的整个模型是非manifold.是时候重新启动了.再次. 解决方案 我猜建筑物的正态正在面对错误的方向.只需重新计算建筑物的正态(内部编辑模式 - 空间 - "重新计算正常的") 编辑:在重新计算正常 之前,不要忘记选择所有面孔
4 2023-11-08
编程技术问答社区
网格对撞机在应该有孔的地方有墙,而且是变形的。
我需要一个曲线圆柱体撞机的曲线水管模型,以便我的播放器红色立方体可以轻松通过. 我尝试了网格对撞机,它不起作用,还尝试了另一个技巧,我在Blender One构建2个模型以用于网状渲染,一个用于对撞机.整个块中的一个是一个整个块,因为网格对撞机没有在整个对象上工作:1和检查图片:5在将两种型号导出到Unity之后,我将网状撞机分别应用于所有9个块管中,以获得完美图片编号:5撞机外观的结果是完美的,但不完美的结果红色盒子玩家无法通过管道 对撞机不允许玩家从另一侧进出,如图所示.我需要一个完美的对撞机,以便我的曲线管道可以轻松地通过.在Pic One中,我显示了应用网格对撞机结果后.在PIC第二,我显示了我再次构建模型,但是在9个块中,您可以看到一个块,以分别在所有9个块上应用网格对撞机,以获得良好的效果.在图5中,我显示了最终结果,看起来不错,但无法使用撞机,并没有让我的小红色盒子播放器在管道内并通过它.在图3中,我是瞄准的.在图4中,我开火,表明我们的玩家没有进入管道.
2 2023-11-08
编程技术问答社区
在导入Unity之前,我应该在Blender中烘烤模型吗?
就像标题中一样,在手机游戏中使用(搅拌机)模型烘烤纹理很重要,而烘烤的效果有什么好处?如果我不烘烤它,并且我在游戏中直接使用纹理了吗? 解决方案 搅拌机中有烘焙和烘烤.您的问题似乎是关于在将模型导入统一之前在搅拌机中烘烤,此答案将涵盖. 如何从烘焙中受益? 搅拌机中的烘烤模型在将其导入统一之前与性能无关.有关原因以及何时烘烤模型的原因. 如果我不烘烤并使用纹理,是否有任何问题 直接到我的游戏模型? 这取决于.如果您只有一个基本或简单的材料和纹理的搅拌机模型,则无需烘烤模型. 如果您具有带有高级材料或材料网络的搅拌机模型,则必须在导入统一之前烘烤模型.材料网络是当您拥有与许多节点相连的材料以形成程序纹理的时候.以下是Blender中材料网络的示例: 没有办法以统一性导入该材料.如果您尝试,它看起来不会像在搅拌机中呈现的那样.这就是为什么烘烤质地的原因.当您烘烤时,该材料中的所有内容都会被转换或扁平化为图像/纹理.这种质地是您可以在统一中使用的,使
4 2023-11-08
编程技术问答社区
如何在Unity中正确导入一个fbx?
我已经建模了一个对象并将其导出为FBX.在团结中导入资产后,一些人工制品出现了.这些人工制品似乎与Unity Import有关,而不是执行FBX文件,因为Windo3d 3D Viever中观看的模型似乎没有问题. 非常感谢! 搅拌器编辑模式中的对象 搅拌器对象模式中的对象 Windows 3D中的对象 unity中的对象 解决方案 看起来像要解决此问题,您有两个选择: blender中的修复三角绕组(默认情况下,从"背面"中看到的搅拌器三角形中的三角绕组,寻找后面的culling选项) 使用Unity的双面材料(一种带有 culling culling culling的材料,即Cull Off).
0 2023-11-08
编程技术问答社区
Blender vs. Unity
我想制作一个3D游戏,最好是可以在浏览器中玩的游戏.有人说搅拌机,有人说团结.每个人的利弊是什么? 解决方案 搅拌器和统一性不是相同的东西. 对于Unity,您可以创建3D模型/动画并导入它们,但我不确定它是否与搅拌机兼容,但它与Maya兼容. 我会为制作游戏推荐更多的团结,因为它也具有网络支持,但是它需要安装插件. 在Unity 其他解决方案 冒着发声的风险,我必须不同意 mklfarha> mklfarha =" https://stackoverflow.com/a/3886690/11573842">答案.尽管这只是我自己的看法,但我对Blender Game Engine更加偏爱.当您在编程和建模方面达到一定水平的水平时,Blender Game Engine可以为游戏类型和游戏机械师提供更多选择的自由度.这也是开源的,这意味着您永远不必担心版权. 这样说,对于初学者来说,团结要好得多,因为游戏的许多功能已经内置,例如角色和探路的运动.另外,对
2 2023-11-08
编程技术问答社区
Blender的Three.JS插件不工作
我无法为搅拌机安装三个插件.我有一个带有Blender 2.69的Fedora,我在/usr/share/Blender中创建了目录io_mesh_threejs .../addon并将3 .Py文件复制到用户偏好中,但该插件未显示. > . 我还尝试了下载的2.65版Blender,没有成功. 我为另一个图书馆(Babylon.js)做了,它运行良好,所以我想它来自Python文件? 解决方案 这是我为与Win 7一起工作所做的工作 - 也可能对您有用. 确保您从原始文件格式复制文本,而不是右键单击并下载Python文件.如果您右键单击并下载,则可能会获得一些其他HTML代码,以破坏它.这里的其他人先前提出了该建议. 将导入文件和导出文件放在io_mesh_threejs文件夹中.将 init 文件放在addons目录的根部. 无论如何都为我带来了困难. 其他解决方案 希望这会增加对话流...我花了两个小时为搅拌机的IFC文件找到答案...
12 2023-10-20
编程技术问答社区
Blender导入3.js json模型与UV地图
我想我不需要太多的人将三个文件导入到搅拌机中,但是我丢失了原始的搅拌器文件,并想从之前导出的JSON重新创建它. 最新的三人git只有出口商,没有进口商. 我尝试使用旧的JSON Importer(来自此链接 https://github.com/bangybug/three.js/tree/master/master/utils/exporters/exporters/blender/blender/2.71/scripts/addons/oid_mesh_threejs ,只有模型和纹理,所以我想知道是否有一些进口商可以这样做? 解决方案 不幸的是,当前没有工作的进口商可以将三分.您可以尝试将对象加载到三分.您可能有一个很好的机会将导致的OBJ文件导入搅拌机.
6 2023-10-20
编程技术问答社区
对于three.js来说,加载一个已经被三角化的网格,是否比使用四边形的网格更有性能?
我已经读过三角形的三角形,这是正确的吗? 然后,我意识到我一直使用的大多数GLTF型号都有四面脸.在搅拌机中进行三角态的面孔非常容易,所以我很好奇,如果面孔前三角调节会导致更快的网格负载? 预先感谢您,如果您还有其他有关three.js和gltf的性能提示(除了在 解决方案 GLTF,以当前形式,不支持四角形,而仅支持三角形.当前GLTF出口商(包括搅拌机)在创建GLTF文件时将模型进行三角测量.有些人会自动尝试将事物重新合并为导入. 通过设计,GLTF以与WebGL的顶点属性相似的方式存储数据,从而可以通过最少的预处理进行有效渲染.但是,创建模型时您可以做一些事情,以帮助其实现这些目标: 在可能的情况下组合材料,以减少拨打电话的数量. 在可能的情况下,结合网格/原语,也可以减少拨打电话. 请注意,不连续的正态/紫外线会增加顶点计数(再次是由于顶点属性). 避免创建充满纯色的纹理.改用Blender的默认颜色/值节点输入. 保持纹理尺寸适用于网络友好型和
6 2023-10-20
编程技术问答社区
如何在网页上渲染Blender模型?
因此,我已经探索了有关在Web应用中渲染Blender模型的多个选项,现在我将模型导出为.gltf格式,这是我的代码 app.js import React, { Suspense } from 'react'; import './App.css'; import Model from './Model' function App() { return ( ); } export default App; model.js import React from 'react' import { useLoader } from 'react-three-fiber' import { GLTFLoader } from 'three/example
4 2023-10-20
编程技术问答社区