diff options
Diffstat (limited to 'chickadee/graphics/model.scm')
-rw-r--r-- | chickadee/graphics/model.scm | 64 |
1 files changed, 32 insertions, 32 deletions
diff --git a/chickadee/graphics/model.scm b/chickadee/graphics/model.scm index 839ddd1..5e0857e 100644 --- a/chickadee/graphics/model.scm +++ b/chickadee/graphics/model.scm @@ -280,7 +280,7 @@ #:mag-filter 'linear #:flip? #f))) (loop (cons (cons 'ambient-map texture) - opts)))) + opts)))) (("map_Kd" . args) ; diffuse map (let* ((diffuse-opts (parse-map-args args)) (file (scope-file (assq-ref diffuse-opts @@ -332,9 +332,9 @@ (loop opts))))))))) (define (parse-error message args) (apply error (format #f "OBJ parser error @ ~a:~d: ~a" - file-name - (port-line port) - message) + file-name + (port-line port) + message) args)) (define (parse-vertex args) (array-list-push! vertices @@ -515,21 +515,21 @@ ;; Construct vertex array. ;; TODO: Add names to buffers and views. (let* ((index-buffer (make-buffer mesh-indices #:target 'index)) - (index-view (make-buffer-view #:type 'scalar - #:component-type 'unsigned-int - #:buffer index-buffer)) + (index-view (make-vertex-attribute #:type 'scalar + #:component-type 'unsigned-int + #:buffer index-buffer)) (data-buffer (make-buffer mesh-data #:stride (* stride 4))) - (vertex-view (make-buffer-view #:type 'vec3 - #:component-type 'float - #:buffer data-buffer)) - (texcoord-view (make-buffer-view #:type 'vec2 - #:component-type 'float - #:buffer data-buffer - #:offset 12)) - (normal-view (make-buffer-view #:type 'vec3 - #:component-type 'float - #:buffer data-buffer - #:offset 20))) + (vertex-view (make-vertex-attribute #:type 'vec3 + #:component-type 'float + #:buffer data-buffer)) + (texcoord-view (make-vertex-attribute #:type 'vec2 + #:component-type 'float + #:buffer data-buffer + #:offset 12)) + (normal-view (make-vertex-attribute #:type 'vec3 + #:component-type 'float + #:buffer data-buffer + #:offset 20))) (make-primitive material (make-vertex-array #:indices index-view @@ -725,7 +725,7 @@ (else (make-bytevector length))))) data)) - (define (parse-buffer-view obj i buffers index-ids) + (define (parse-vertex-attribute obj i buffers index-ids) (let ((name (string-ref/optional obj "name")) (data (vector-ref buffers (number-ref obj "buffer"))) (offset (or (number-ref/optional obj "byteOffset") 0)) @@ -745,7 +745,7 @@ #:length length #:stride stride #:target target))) - (define (parse-accessor obj buffer-views) + (define (parse-accessor obj vertex-attributes) (define (type-length type) (match type ('scalar 1) @@ -758,7 +758,7 @@ (let ((name (or (string-ref/optional obj "name") "anonymous")) (view (match (number-ref/optional obj "bufferView") (#f #f) - (n (vector-ref buffer-views n)))) + (n (vector-ref vertex-attributes n)))) (offset (or (number-ref/optional obj "byteOffset") 0)) (component-type (match (number-ref obj "componentType") (5120 'byte) @@ -794,13 +794,13 @@ (display "glTF: sparse accessors currently unsupported" (current-error-port)) (newline (current-error-port))) - (make-buffer-view #:name name - #:buffer view - #:offset offset - #:component-type component-type - #:normalized? normalized? - #:length length - #:type type))) + (make-vertex-attribute #:name name + #:buffer view + #:offset offset + #:component-type component-type + #:normalized? normalized? + #:length length + #:type type))) (define (texture-filter n) (match n (9728 'nearest) @@ -1056,11 +1056,11 @@ (parse-buffer obj)) (or (assoc-ref tree "buffers") #()))) (indices (index-ids tree)) - (buffer-views (vector-map (lambda (obj i) - (parse-buffer-view obj i buffers indices)) - (or (assoc-ref tree "bufferViews") #()))) + (vertex-attributes (vector-map (lambda (obj i) + (parse-vertex-attribute obj i buffers indices)) + (or (assoc-ref tree "bufferViews") #()))) (accessors (vector-map (lambda (obj i) - (parse-accessor obj buffer-views)) + (parse-accessor obj vertex-attributes)) (or (assoc-ref tree "accessors") #()))) (images (or (assoc-ref tree "images") #())) (samplers (or (assoc-ref tree "samplers") #(()))) |