X-Git-Url: https://git.jsancho.org/?p=guile-assimp.git;a=blobdiff_plain;f=src%2Flow-level%2Fpostprocess.scm;fp=src%2Flow-level%2Fpostprocess.scm;h=20ca550c8dd923e6a8468bbc1db94e3ace224279;hp=0000000000000000000000000000000000000000;hb=fe037abb54b99784fa30c9f8ffa1c594482b97bf;hpb=708fbd4d04091af33626837f4a5141d20748762d diff --git a/src/low-level/postprocess.scm b/src/low-level/postprocess.scm new file mode 100644 index 0000000..20ca550 --- /dev/null +++ b/src/low-level/postprocess.scm @@ -0,0 +1,92 @@ +;;; guile-assimp, foreign interface to libassimp +;;; Copyright (C) 2014 by Javier Sancho Fernandez +;;; +;;; This program is free software: you can redistribute it and/or modify +;;; it under the terms of the GNU General Public License as published by +;;; the Free Software Foundation, either version 3 of the License, or +;;; (at your option) any later version. +;;; +;;; This program is distributed in the hope that it will be useful, +;;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;;; GNU General Public License for more details. +;;; +;;; You should have received a copy of the GNU General Public License +;;; along with this program. If not, see . + + +(define-module (assimp low-level postprocess) + #:use-module (assimp low-level) + #:export (ai-process-steps + ai-process-convert-to-left-handed + ai-process-preset-target-realtime-fast + ai-process-preset-target-realtime-quality + ai-process-preset-target-realtime-max-quality)) + + +(define-bitfield + ai-process-steps + (calc-tangent-space #x1) + (join-identical-vertices #x2) + (make-left-handed #x4) + (triangulate #x8) + (remove-component #x10) + (gen-normals #x20) + (gen-smooth-normals #x40) + (split-large-meshes #x80) + (pretransform-vertices #x100) + (limit-bone-weights #x200) + (validate-data-structure #x400) + (improve-cache-locality #x800) + (remove-redundant-materials #x1000) + (fix-infacing-normals #x2000) + (sort-by-ptype #x8000) + (find-degenerates #x10000) + (find-invalid-data #x20000) + (gen-UV-coords #x40000) + (transform-UV-coords #x80000) + (find-instances #x100000) + (optimize-meshes #x200000) + (optimize-graph #x400000) + (flip-UVs #x800000) + (flip-winding-order #x1000000) + (split-by-bone-count #x2000000) + (debone #x4000000)) + +(define ai-process-convert-to-left-handed + (ai-process-steps + make-left-handed + flip-UVs + flip-winding-order)) + +(define ai-process-preset-target-realtime-fast + (ai-process-steps + calc-tangent-space + gen-normals + join-identical-vertices + triangulate + gen-UV-coords + sort-by-ptype)) + +(define ai-process-preset-target-realtime-quality + (ai-process-steps + calc-tangent-space + gen-smooth-normals + join-identical-vertices + improve-cache-locality + limit-bone-weights + remove-redundant-materials + split-large-meshes + triangulate + gen-UV-coords + sort-by-ptype + find-degenerates + find-invalid-data)) + +(define ai-process-preset-target-realtime-max-quality + (+ ai-process-preset-target-realtime-quality + (ai-process-steps + find-instances + validate-data-structure + optimize-meshes + debone)))