From ec15aa537055159fc94f667a9219dde27deefb89 Mon Sep 17 00:00:00 2001 From: David Thompson Date: Tue, 29 Oct 2019 17:17:19 -0400 Subject: render: model: Invert texture V coords when parsing OBJ files. --- chickadee/render/model.scm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/chickadee/render/model.scm b/chickadee/render/model.scm index 332d211..9f29240 100644 --- a/chickadee/render/model.scm +++ b/chickadee/render/model.scm @@ -377,10 +377,15 @@ ((u) (vec2 (string->number u) 0.0)) ((u v) - (vec2 (string->number u) (string->number v))) + ;; OBJ texture coordinates use the + ;; top-left of the image as the origin, + ;; but OpenGL uses the bottom-left, so + ;; all V values must be inverted. + (vec2 (string->number u) + (- 1.0 (string->number v)))) ((u v w) (vec2 (string->number u) - (string->number v))) + (- 1.0 (string->number v)))) (_ (parse-error "wrong number of texcoord arguments" args))))) (define (parse-normal args) -- cgit v1.2.3