[orx-mesh, orx-mesh-generator, orx-obj-loader] Add decal and tangent tools

This commit is contained in:
Edwin Jakobs
2024-09-25 09:51:46 +02:00
parent fb3bb6f7a6
commit e016891b1d
28 changed files with 1072 additions and 82 deletions

View File

@@ -1,7 +1,8 @@
package org.openrndr.extra.mesh
package org.openrndr.extra.objloader
import org.openrndr.color.ColorRGBa
import org.openrndr.draw.VertexBuffer
import org.openrndr.extra.mesh.*
import org.openrndr.math.Vector2
import org.openrndr.math.Vector3
@@ -79,8 +80,8 @@ fun readObjMeshData(lines: Iterable<String>): CompoundMeshData {
IndexedPolygon(
if (hasPosition) indices.map { it[0] - 1 } else listOf(),
if (hasUV) indices.map { it[1] - 1 } else listOf(),
if (hasNormal) indices.map { it[2] - 1 } else listOf(),
if (hasColor) indices.map { it[0] - 1 } else listOf(),
if (hasNormal) indices.map { it[2] - 1 } else listOf(),
if (hasTangents) indices.map { it[2] - 1 } else listOf(),
if (hasBitangents) indices.map { it[2] - 1 } else listOf()
)
@@ -95,7 +96,7 @@ fun readObjMeshData(lines: Iterable<String>): CompoundMeshData {
}
}
val vertexData = VertexData(positions, normals, textureCoords, colors)
val vertexData = VertexData(positions, textureCoords, colors, normals)
return CompoundMeshData(
vertexData,
meshes.mapValues {

View File

@@ -1,4 +1,6 @@
package org.openrndr.extra.mesh
package org.openrndr.extra.objloader
import org.openrndr.extra.mesh.ICompoundMeshData
/**
* Convert mesh data to Wavefront OBJ representation

View File

@@ -1,6 +1,6 @@
import org.openrndr.application
import org.openrndr.extra.mesh.loadOBJMeshData
import org.openrndr.extra.mesh.toObj
import org.openrndr.extra.objloader.loadOBJMeshData
import org.openrndr.extra.objloader.toObj
import java.io.File
fun main() {

View File

@@ -3,7 +3,7 @@ import org.openrndr.color.ColorRGBa
import org.openrndr.draw.DepthTestPass
import org.openrndr.draw.DrawPrimitive
import org.openrndr.draw.shadeStyle
import org.openrndr.extra.mesh.loadOBJasVertexBuffer
import org.openrndr.extra.objloader.loadOBJasVertexBuffer
import org.openrndr.math.Vector3
fun main() = application {

View File

@@ -1,7 +1,7 @@
import org.openrndr.application
import org.openrndr.draw.loadFont
import org.openrndr.extra.mesh.loadOBJasVertexBuffer
import org.openrndr.extra.mesh.saveOBJ
import org.openrndr.extra.objloader.loadOBJasVertexBuffer
import org.openrndr.extra.objloader.saveOBJ
fun main() = application {
configure {

View File

@@ -2,7 +2,7 @@ import org.openrndr.application
import org.openrndr.draw.loadFont
import org.openrndr.extra.meshgenerators.buildTriangleMesh
import org.openrndr.extra.meshgenerators.sphere
import org.openrndr.extra.mesh.saveOBJ
import org.openrndr.extra.objloader.saveOBJ
fun main() = application {
configure {

View File

@@ -8,8 +8,8 @@ import org.openrndr.draw.DrawPrimitive
import org.openrndr.draw.TransformTarget
import org.openrndr.draw.shadeStyle
import org.openrndr.extra.camera.Orbital
import org.openrndr.extra.mesh.readObjMeshData
import org.openrndr.extra.mesh.loadOBJasVertexBuffer
import org.openrndr.extra.objloader.readObjMeshData
import org.openrndr.extra.objloader.loadOBJasVertexBuffer
import org.openrndr.extra.mesh.wireframe
import org.openrndr.math.Vector3
import org.openrndr.shape.Path3D

View File

@@ -1,6 +1,7 @@
package org.openrndr.extra.mesh
package org.openrndr.extra.objloader
import org.openrndr.draw.VertexBuffer
import org.openrndr.extra.mesh.IPolygon
import java.io.File
import java.net.MalformedURLException
import java.net.URL

View File

@@ -1,4 +1,4 @@
package org.openrndr.extra.mesh
package org.openrndr.extra.objloader
import org.openrndr.draw.VertexBuffer
import java.io.File