Godot: لا يمكن أن تكون القواعد القياسية لـ SurfaceTool سلسة عند إضافة الأشعة فوق البنفسجية

تم إنشاؤها على ١٣ أغسطس ٢٠١٦  ·  3تعليقات  ·  مصدر: godotengine/godot

تم اختباره على Godot 2.1 بيتا و 2.1 مستقر ، Windows 10 64 بت

عند إنشاء سطح باستخدام SurfaceTool وطريقة add_smooth_group(true) ، من المستحيل الحصول على قواعد سلسة إذا تمت إضافة UVs إلى القمم.
لقد وجدت أنه يحدث على وجه التحديد عندما لا تزداد الأشعة فوق البنفسجية من قمة إلى أخرى. لذا ، إذا كانت كل كواد من السطح تحتوي على الأشعة فوق البنفسجية التي تتراوح من 0 إلى 1 ، فسيتم تقديم الرباعية بشكل طبيعي للوجه القاسي.
بسبب هذا أجد نفسي مضطرا لتوليد الأعراف.

لست متأكدًا مما إذا كان خطأ لأنني أعتقد أنه تم تنفيذه لذا فهو يفعل ذلك. لكن كما قلت ، من الممكن أن يكون لديك معايير سلسة حتى في هذه الحالة ، لذلك يمكن تحسين ذلك.

ريبرو:
SurfaceToolSmoothShading.zip
قم بتشغيل المشهد الرئيسي ، وانظر إلى السطح الذي تم إنشاؤه على اليسار مع وجود وجوه صلبة للأشعة فوق البنفسجية ، والسطح الموجود على اليمين ليس كذلك وله وجوه ناعمة ، بينما يحتوي كلاهما على مجموعة ناعمة.

bug confirmed core

التعليق الأكثر فائدة

لا يزال يحدث:
SurfaceToolSmoothShading.zip

أعتقد أن هذا يحدث لأن SurfaceTool يفترض أن التجانس لا يمكن أن يحدث إلا إذا تمت مشاركة الرؤوس ، ولكي تكون القمم مشتركة يجب أن يكون لها سمات متساوية. في حين أن هذه الحالة تجعلها تتمتع بأشعة فوق بنفسجية مختلفة ، إلا أن التنعيم يجب أن يظل ممكنًا برأسين لهما أشعة فوق بنفسجية مختلفة ، ولكن مع إعطاء معيارين لهما نفس القيمة.

ال 3 كومينتر

مرحبًا Zylann كنت
أنا أستخدم godot 3.0.4 ، وباستخدام add_smooth_group كما هو الحال بالنسبة لك ، يتم عرضه بشكل صحيح ، باستخدام الأشعة فوق البنفسجية.
[تحرير] لا بد لي من تصحيح نفسي ، لا تزال المشكلة قائمة ، لكن يجب أن أحدد ، كما فعل Zylann في الكود ، أنه لا يعمل إلا إذا تم توزيع الأشعة فوق البنفسجية على الشبكة ، ولكن ليس عند تكرارها لكل رباعية:

# If UVs are spread, normals are smooth.
  var t00 = Vector2(p00.x, p00.z) / Vector2(sx,sy)
  var t10 = Vector2(p10.x, p10.z) / Vector2(sx,sy)
  var t11 = Vector2(p11.x, p11.z) / Vector2(sx,sy)
 var t01 = Vector2(p01.x, p01.z) / Vector2(sx,sy)

Zylann هل يمكنك (أو أي شخص آخر) إعادة إنتاج هذا الخطأ في Godot 3.2.1 أو

لا يزال يحدث:
SurfaceToolSmoothShading.zip

أعتقد أن هذا يحدث لأن SurfaceTool يفترض أن التجانس لا يمكن أن يحدث إلا إذا تمت مشاركة الرؤوس ، ولكي تكون القمم مشتركة يجب أن يكون لها سمات متساوية. في حين أن هذه الحالة تجعلها تتمتع بأشعة فوق بنفسجية مختلفة ، إلا أن التنعيم يجب أن يظل ممكنًا برأسين لهما أشعة فوق بنفسجية مختلفة ، ولكن مع إعطاء معيارين لهما نفس القيمة.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات