commit c69546899afc84662eb6c4d57579c30033cf4b3e
parent 173b8323918b38e4a0f0071be99622d7ac987746
Author: Matsuda Kenji <info@mtkn.jp>
Date: Mon, 18 Nov 2024 13:48:42 +0900
fix bug: normalize norm
Diffstat:
3 files changed, 5 insertions(+), 21 deletions(-)
diff --git a/cmd/sample/fragment.glsl b/cmd/sample/fragment.glsl
@@ -54,8 +54,8 @@ void main() {
diffuse = diff * vec3(texture(material.diffuse, texPos)) * light.diffuse * intensity;
viewDir = normalize(camPos - fpos);
- reflectDir = reflect(-lightDir, fnormal);
- spec = pow(max(dot(viewDir, reflectDir), 0.0), material.shiness);
+ reflectDir = reflect(-lightDir, normalize(fnormal));
+ spec = pow(max(dot(viewDir, reflectDir), 0), material.shiness);
specular = vec3(texture(material.specular, texPos)) * spec * light.specular * intensity;
fcol += vec4(ambient + diffuse + specular, 0) * attenuation;
diff --git a/cmd/sample/main.go b/cmd/sample/main.go
@@ -149,7 +149,6 @@ type App struct {
func (app *App) Update() error {
now := float32(time.Since(app.startedAt).Seconds())
- now = 0
processInput(app)
if app.termination {
return tofu.Termination
@@ -198,11 +197,11 @@ func (app *App) Update() error {
app.teapotProgram.Use()
app.teapotProgram.SetMat4("view", view)
app.teapotProgram.SetMat4("projection", projection)
- app.teapotProgram.SetMat4("model", tofu.Translate(tofu.Vec3{0, 0, 0}).Mul(tofu.Scale(0.06)))
+ app.teapotProgram.SetMat4("model", tofu.Translate(tofu.Vec3{-5, -5, 0}).Mul(tofu.Scale(0.06)))
app.teapotProgram.SetVec3("camPos", camera.Pos)
app.teapotProgram.SetVec3("material.diffuse", tofu.Vec3{0.3, 0.4, 0.4})
app.teapotProgram.SetVec3("material.specular", tofu.Vec3{0.3, 0.4, 0.4})
- app.teapotProgram.SetFloat32("material.shiness", 0)
+ app.teapotProgram.SetFloat32("material.shiness", 32)
app.teapotProgram.SetVec3("sun.dir", sunDir)
app.teapotProgram.SetVec3("sun.ambient", sunCol.MulF(0.5))
app.teapotProgram.SetVec3("sun.diffuse", sunCol.MulF(0.3))
diff --git a/cmd/sample/teapot.glsl b/cmd/sample/teapot.glsl
@@ -54,26 +54,11 @@ void main() {
diffuse = diff * material.diffuse * light.diffuse * intensity;
viewDir = normalize(camPos - fpos);
- reflectDir = reflect(-lightDir, fnormal);
+ reflectDir = reflect(-lightDir, normalize(fnormal));
spec = pow(max(dot(viewDir, reflectDir), 0.0), material.shiness);
specular = material.specular * spec * light.specular * intensity;
-
- // BUG:
-/*
- fcol += vec4(specular.x, 0, 0, 0);
- fcol += vec4(diffuse.x, 0, 0, 0);
- fcol += vec4(ambient.x, 0, 0, 0);
- if (fcol.x == 1) {
- fcol = vec4(0, 1, 1, 1);
- return;
- }
-*/
fcol += vec4((ambient+diffuse+specular) * attenuation, 0);
- if (fcol.x == 0) {
- fcol = vec4(0, 1, 1, 1);
- }
-
return;
ambient = material.diffuse * sun.ambient;