Three.js: ضبط عتامة / حجم الجسيمات والخطوط

تم إنشاؤها على ٢٧ يونيو ٢٠١١  ·  11تعليقات  ·  مصدر: mrdoob/three.js

لدي نظام جسيمات وخط. يمكنني بسهولة ضبط لون كل رأس وحافة في خطي عن طريق إنشاء مصفوفة ألوان وضبط VertexColors على القيمة الحقيقية. سؤالي هو كيف يمكنني ضبط حجم أ) العتامة ب) لكل رأس / حافة على حدة في نظام / خط الجسيمات.

شكر!

زنا

Question

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

تضمين التغريدة شكرا للمعلومة!

من ناحية أخرى ، سيكون من الجيد أن يتم ذلك في JS ، خاصة للأشخاص الذين ليسوا على دراية بلغة التظليل ، بمن فيهم أنا. شكرا على الرغم من كل نفس!

ال 11 كومينتر

أنا أيضا أود أن أعرف هذا.

geometry.colors هو مصفوفة تعين القمم 1 × 1. لذلك إذا كنت تريد تغيير لون geometry.vertices[ 1 ] فأنت بحاجة إلى تعديل geometry.colors[ 1 ] .

مرحبا مردوب.

الهندسة.الألوان [1] سيكون ثلاثي الألوان. يمكنني تغيير اللون بسعادة ، ولكن بقدر ما أعرف لا يتم تخزين قيمة العتامة هناك. فكيف يمكنني تغيير عتامة الرؤوس / الخطوط المفردة؟

اه اوه ...

لا يمكنك القيام بذلك بسهولة ، يتم تحديد العتامة لكل مادة وليس لكل عنصر. لقد أسقطنا ألفا من Color منذ بعض الوقت.

تتمثل إحدى الطرق الممكنة في استخدام السمات المخصصة والمخصصة MeshShaderMaterial حيث سيكون لديك 4 ألوان مكونة.

نفس الشيء بالنسبة للأحجام ، لا توجد حاليًا طريقة لتغييرها لكل جسيم أو لكل سطر بسمات ومواد افتراضية. ستحتاج إلى دفق سمة آخر للحجم ومن ثم يكون لديك مادة مخصصة تستخدم هذا.

الآن لا أتذكر لماذا قررنا إزالة ألفا من Color ...

لا أتذكر أيضًا ، لقد تمكنت من العثور على هذا:

https://github.com/mrdoob/three.js/commit/dc6e335dc9f7f38f1c79a5a6c112019d6fcce69d

يبدو أن الألوان السداسية ذات الألفا تسبب المشاكل. الآن ، مع المزيد من التبعيات في تدفق الأصول ، أعتقد أنه سيكون أكثر إيلامًا.

القدرة على تحديد العتامة لكل رأس ستكون مفيدة جدًا لعمل أنظمة الجسيمات.

هل هناك أي خطة لدعم هذا في إصدار مستقبلي؟

لست متأكدًا من الصعوبة الفنية هنا. حدسيًا ، يبدو أن الحصول على شيء مثل geometry.opacityValues هو طريقة متوافقة مع الإصدارات السابقة وغير تدخلية لدعم ذلك. يمكن أن يكون هناك أيضًا علامة pointsMaterial.vertexOpacityValues عالمية لتعطيل هذا الدعم إذا لم تكن هناك حاجة إليه أو التسبب في مشاكل ، تمامًا كما هو الحال بالنسبة لألوان الرأس.

quyin يمكنك فعل ما تريد باستخدام ShaderMaterial مخصص. انظر Stackoverflow إذا كنت بحاجة إلى مساعدة.

تضمين التغريدة شكرا للمعلومة!

من ناحية أخرى ، سيكون من الجيد أن يتم ذلك في JS ، خاصة للأشخاص الذين ليسوا على دراية بلغة التظليل ، بمن فيهم أنا. شكرا على الرغم من كل نفس!

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