Blender是免费的开源3D内容创建套件,适用于GNU通用公共许可证下的所有主要操作系统。另请参阅http://blender.stackexchange.com Stack Exchange站点以获取更多与Blender相关的问题。
有一种方法可以找出为什么在我的程序生成的3D模型中剔除前脸而不是背面?
const marchingCubes = (scalarField, dims, threshold) => { const geometry = new THREE.BufferGeometry(); const vertices = []; const colors = []; const normals = []; const pA = new THREE.Vector3(); const pB = new THREE.Vector3(); const pC = new THREE.Vector3(); const cB = new THREE.Vector3(); const aB = new THREE.Vector3(); const color = new THREE.Color(); for(let z = 0; z < dims[2] - 1; z++) { for(let y = 0; y < dims[1] - 1; y++) { for(let x = 0; x < dims[0] - 1; x++) { const cube = getCube(scalarField, x, y, z); const cubeIndex = getCubeIndex(cube, threshold); const edges = EdgeMasks[cubeIndex]; if(edges === 0) { continue; } const interpolatedVertices = interpolateEdges(cube, edges, threshold); const triangles = triangleTable[cubeIndex] let i = 0; while(triangles[i] != -1) { const v1 = interpolatedVertices[triangles[i]]; const v2 = interpolatedVertices[triangles[i + 1]]; const v3 = interpolatedVertices[triangles[i + 2]]; pA.set(v1[0], v1[1], v1[2]); pB.set(v2[0], v2[1], v2[2]); pC.set(v3[0], v3[1], v3[2]); cB.subVectors(pC, pB); aB.subVectors(pA, pB); cB.cross(aB); cB.normalize(); const nx = cB.x; const ny = cB.y; const nz = cB.z; const n0 = [nx, ny, nz]; const vx = (x / dims[0]) + 0.5; const vy = (y / dims[1]) + 0.5; const vz = (z / dims[2]) + 0.5; color.setRGB(vx, vy, vz); const c0 = [color.r, color.g, color.b]; vertices.push(...v1, ...v2, ...v3); normals.push(...n0, ...n0, ...n0); colors.push(...c0, ...c0, ...c0); i += 3; } } } } geometry.setAttribute('position', new THREE.Float32BufferAttribute(vertices, 3)); geometry.setAttribute('normal', new THREE.Float32BufferAttribute(normals, 3)); geometry.setAttribute('color', new THREE.Float32BufferAttribute(colors, 3)); geometry.computeBoundingSphere(); return geometry; } const WebApplication = () => { const Ref = useRef(null); const handleButtonClick = async () => { const scene = new THREE.Scene(); scene.add(new THREE.AmbientLight(0x444444, 3)); const light1 = new THREE.DirectionalLight(0xffffff, 1.5); light1.position.set(1, 1, 1); scene.add(light1); const light2 = new THREE.DirectionalLight(0xffffff, 4.5); light2.position.set(0, -1, 0); scene.add(light2); const renderer = new THREE.WebGLRenderer({antialias: true}); renderer.setSize(window.innerWidth, window.innerHeight); renderer.setClearColor(0x000000, 0.5); renderer.setPixelRatio(window.devicePixelRatio); if(Ref.current) { Ref.current.innerHTML = ''; Ref.current.appendChild(renderer.domElement); } const camera = new THREE.PerspectiveCamera(27, window.innerWidth / window.innerHeight, 1, 3500); const controls = new OrbitControls(camera, renderer.domElement); controls.enableDamping = true; controls.dampingFactor = 0.5; controls.update(); . . . const scalarField = generateScalarField(int16Array, dims); const threshold = 0.166666666665; const size = 5; const sigma = 1.0; const kernel = createGaussianKernel(size, sigma); const gaussianFilter = applyGaussianFilter(scalarField, dims, kernel); let geometry = marchingCubes(gaussianFilter, dims, threshold); let material = new THREE.MeshBasicMaterial({color: 0xaaaaaa, specular: 0xffffff, shininess: 250, side: THREE.FrontSide, vertexColors: true}) const cubes = new THREE.Mesh(geometry, material); cubes.position.set(Math.trunc(-(dims[0] / 2)), Math.trunc(-(dims[1] / 2)), Math.trunc(-(dims[2] / 2))); scene.add(cubes); camera.position.z = Math.max(dims[0], dims[1], dims[2]) * 1.5; function animate() { requestAnimationFrame(animate); renderer.render(scene, camera); } animate(); } return ( <div> <button onClick={handleButtonClick}>vroom vroom</button> <div ref={Ref} style={{ width: "100vw", height: "100vh" }}></div> </div> ); };
print(object.matrix_world) # unit matrix (as expected) object.location += mathutils.Vector((5,0,0)) object.rotation_quaternion *= mathutils.Quaternion((0.0, 1.0, 0.0), math.radians(45)) print(object.matrix_world) # Also unit matrix!?!
I打算在搅拌器内部基于多视图立体声图像(基本上是从不同角度和方向的同一对象的2D平面图像)制作3D模型。
我在使用 RealityKit 制作角色动画时遇到问题。我在 Blender 中创建了一个文件,其中包含已装备的角色、剑和盾牌。剑和盾都有骨头
在 Blender 中,我正在路径追踪一些 2D 光子弯曲,这是由于史瓦西度量定义的非旋转标准黑洞造成的。我根据 r(半径)、phi(角度)和...
我想用c++加载.obj文件并用OpenGl将其形状和材质绘制到场景中。为了进行加载,我使用 syoyo 的tinyobjectloader。加载效果非常好,我能够...
我正在将 .obj(在 Blender 中创建,如果有帮助的话)解析为 OpenGL 中的 C++ 程序,看起来已经很接近了。看来这里正确地找到了需要的顶点。我正在努力创造...
Blender Rig 总是将 X 上的 -90 导入 Unity
我正在尝试将模型从 Blender 导出到 Unity 中。无论我在 FBX 导出中如何设置电枢设置,装备始终会在 Unity 中的 X 轴 -90 处导入。
身体的网格变形不起作用 在我有一条裙子和主体在一个网格中并且工作正常之前,我决定将裙子分离到它自己的变形网格中,裙子的工作原理...
我有型号: 从 '@react-two/drei' 导入 { useGLTF } 从 'react' 导入 React, { FC } 从 '三' 导入 * 作为三 从“三标准库”导入 { GLTF } 类型 GLTFResult = GLTF & { 不...
我是搅拌机新手,并使用它为我正在解决的另一个问题生成数据集。我使用物理模拟来使物体掉落。我面临的问题是 object.location
当我将 bpy 导入 python 时,我收到以下错误代码是因为我需要安装搅拌机还是我可以用另一种方式解决这个问题' 色彩管理:使用后备模式进行管理
我有这个图像,我想在搅拌机中使用: 在此输入图像描述 当我尝试使用在线工具删除背景时,背景变成全黑。如何去除背景...
Blender Python - 在导入其所有类时强制重新加载模块
我正在使用Python/Blender进行开发,这里有两个需求: 从我的模块导入所有单独的类(因为它们必须分别向搅拌机注册) 每次重新加载模块本身...
我一直在场景套件中制作游戏,但物体的边缘很难看到,导致一些游戏细节无法看到。 有没有办法在整个游戏周围制作黑色轮廓
我有一些Python中的3D(x,y,z,值)数据,我可以在Mayavi中可视化等值面。如何将该等值面导出到可以读入 Blender 的文件中? 这是一些示例代码: 我...
问题描述: 在 VS Code 中,运行命令 pip install bpy (如 https://pypi.org/project/bpy/ 中所示)并收到以下错误消息: PS C:\Users\(...)\Local\Programs\Python\Python3...