123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366 |
- <!DOCTYPE html>
- <html lang="ar">
- <head>
- <meta charset="utf-8" />
- <base href="../../../" />
- <script src="page.js"></script>
- <link type="text/css" rel="stylesheet" href="page.css" />
- </head>
- <body class="rtl">
- <h1>[name]</h1>
-
- <p>
- تمثيل شبكة ، خط ، أو هندسة نقطية. يتضمن مواقع الرأس ، ومؤشرات الوجه ، والمعايير ، والألوان ، والأشعة فوق البنفسجية ، والسمات المخصصة
- داخل المخازن المؤقتة ، مما يقلل من تكلفة تمرير كل هذه البيانات إلى وحدة معالجة الرسومات.
- </p>
- <p>
- لقراءة وتحرير البيانات في سمات BufferGeometry ، راجع
- [page:BufferAttribute] التوثيق.
- </p>
-
- <h2>مثال للكود</h2>
-
- <code>
- const geometry = new THREE.BufferGeometry();
-
- // إنشاء شكل مربع بسيط. نحن نكرر الأعلى الأيسر والأسفل الأيمن
- // الرؤوس لأن كل رأس يحتاج إلى الظهور مرة واحدة لكل مثلث.
- const vertices = new Float32Array( [
- -1.0, -1.0, 1.0, // v0
- 1.0, -1.0, 1.0, // v1
- 1.0, 1.0, 1.0, // v2
-
- 1.0, 1.0, 1.0, // v3
- -1.0, 1.0, 1.0, // v4
- -1.0, -1.0, 1.0 // v5
- ] );
-
- // itemSize = 3 لأنه يوجد 3 قيم (مكونات) لكل رأس
- geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
- const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
- const mesh = new THREE.Mesh( geometry, material );
- </code>
-
- <h2>مثال للكود (Index)</h2>
-
- <code>
- const geometry = new THREE.BufferGeometry();
-
- const vertices = new Float32Array( [
- -1.0, -1.0, 1.0, // v0
- 1.0, -1.0, 1.0, // v1
- 1.0, 1.0, 1.0, // v2
- -1.0, 1.0, 1.0, // v3
- ] );
-
- const indices = [
- 0, 1, 2,
- 2, 3, 0,
- ];
-
- geometry.setIndex( indices );
- geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
- const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
- const mesh = new THREE.Mesh( geometry, material );
- </code>
- <h2>أمثلة (Examples)</h2>
- <p>
- [example:webgl_buffergeometry شبكة بوجوه غير مفهرسة]<br />
- [example:webgl_buffergeometry_indexed شبكة بوجوه مفهرسة]<br />
- [example:webgl_buffergeometry_lines خطوط]<br />
- [example:webgl_buffergeometry_lines_indexed خطوط مفهرسة]<br />
- [example:webgl_buffergeometry_custom_attributes_particles جزيئات]<br />
- [example:webgl_buffergeometry_rawshader محركات الظل الخام]
- </p>
-
- <h2>المنشئ (Constructor)</h2>
-
- <h3>[name]()</h3>
- <div>
- ينشئ هذا [name] جديدًا. كما يضبط العديد من الخصائص على قيمة افتراضية
- قيمة.
- </div>
-
- <h2>الخصائص (Properties)</h2>
-
- <h3>[property:Object attributes]</h3>
- <p>
- يحتوي هذا الخريطة القائمة على الهوية على اسم السمة المراد تعيينها وكقيمة
- [page:BufferAttribute buffer] لتعيينه. بدلاً من الوصول إلى هذا
- الملكية مباشرة ، استخدم [page:.setAttribute] و [page:.getAttribute] ل
- الوصول إلى سمات هذه الهندسة.
- </p>
-
- <h3>[property:Box3 boundingBox]</h3>
- <p>
- مربع التحديد لـ bufferGeometry ، والذي يمكن حسابه بـ
- [page:.computeBoundingBox](). الافتراضي هو `null`.
- </p>
-
- <h3>[property:Sphere boundingSphere]</h3>
- <p>
- كرة التحديد لـ bufferGeometry ، والتي يمكن حسابها بـ
- [page:.computeBoundingSphere](). الافتراضي هو `null`.
- </p>
-
- <h3>[property:Object drawRange]</h3>
- <p>
- يحدد جزء الهندسة المراد عرضه. يجب عدم تعيين هذا
- مباشرة ، بدلاً من ذلك استخدم [page:.setDrawRange]. الافتراضي هو
- <code>
- { start: 0, count: Infinity }
- </code>
- بالنسبة لـ BufferGeometry غير المفهرس ، count هو عدد القمم التي يتم عرضها.
- بالنسبة لـ BufferGeometry المفهرس ، count هو عدد المؤشرات التي يتم عرضها.
- </p>
-
- <h3>[property:Array groups]</h3>
-
- <p>
- قسم الهندسة إلى مجموعات ، كل منها سيتم عرضه في
- مكالمة WebGL رسم منفصلة. هذا يسمح باستخدام مجموعة من المواد
- مع الهندسة. <br /> <br />
-
- كل مجموعة هي كائن من الشكل:
- <code>
- { start: Integer, count: Integer, materialIndex: Integer }
- </code>
- حيث يحدد start العنصر الأول في هذه المكالمة - الأول
- رأس للهندسة غير المفهرسة ، وإلا فإن المثلث الأول فهرس. عد
- يحدد كم عدد القمم (أو المؤشرات) المضمنة ، و materialIndex
- يحدد فهرس مجموعة المواد للاستخدام. <br /> <br />
-
- استخدم [page:.addGroup] لإضافة مجموعات ، بدلاً من تعديل هذا المصفوفة
- مباشرة. <br /> <br />
-
- يجب أن ينتمي كل رأس وفهرس إلى مجموعة واحدة فقط - يجب ألا تشترك المجموعات
- قمم أو مؤشرات ، ويجب ألا تترك القمم أو المؤشرات غير المستخدمة.
- </p>
-
- <!-- ملاحظة: كانت المجموعات تسمى drawCalls
-
- <h3>[property:Array drawcalls]</h3>
- <p>
- بالنسبة للهندسات التي تستخدم المثلثات المفهرسة ، يمكن استخدام هذا المصفوفة لتقسيم الكائن
- إلى عدة مكالمات رسم WebGL. سترسم كل مكالمة رسم بعض الفئات الفرعية من القمم
- في هذه الهندسة باستخدام [page:Material shader] المكون. قد يكون هذا ضروريًا إذا ،
- على سبيل المثال ، لديك أكثر من 65535 رأسًا في كائنك.
- </p> -->
-
- <h3>[property:Integer id]</h3>
- <p>رقم فريد لهذا الحال bufferGeometry.</p>
-
- <h3>[property:BufferAttribute index]</h3>
- <p>
- يتيح إعادة استخدام القمم عبر مثلثات متعددة ؛ هذا هو
- يسمى باستخدام "المثلثات المفهرسة". يرتبط كل مثلث بـ
- مؤشرات ثلاث قمم. لذلك تخزن هذه السمة فهرس
- كل رأس لكل وجه ثلاثي الأضلاع. إذا لم يتم تعيين هذه السمة ، فإن
- [page:WebGLRenderer renderer] يفترض أن كل ثلاثة مواقع متجاورة
- تمثل مثلثًا واحدًا. الافتراضي هو `null`.
- </p>
-
- <h3>[property:Boolean isBufferGeometry]</h3>
- <p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المحدد من نوع [name].</p>
-
- <h3>[property:Object morphAttributes]</h3>
- <p>
- خريطة قائمة على [page:BufferAttribute]s التي تحمل تفاصيل هندسة المورف
- الأهداف. <br />
- ملاحظة: بمجرد عرض الهندسة ، لا يمكن تغيير بيانات سمة المورف
- يتغير. سيتعين عليك الاتصال [page:.dispose]() ، وإنشاء جديد
- نسخة من [name].
- </p>
-
- <h3>[property:Boolean morphTargetsRelative]</h3>
- <p>
- يستخدم للتحكم في سلوك هدف المورف ؛ عند تعيينه على true ، المورف
- يتم التعامل مع بيانات الهدف كإزاحات نسبية ، بدلاً من كـ
- المواقع / المعايير المطلقة. الافتراضي هو `false`.
- </p>
-
- <h3>[property:String name]</h3>
- <p>
- اسم اختياري لهذه الحالة bufferGeometry. الافتراضي هو فارغ
- سلسلة.
- </p>
-
- <h3>[property:Object userData]</h3>
- <p>
- كائن يمكن استخدامه لتخزين بيانات مخصصة حول BufferGeometry.
- يجب ألا يحتوي على مراجع للوظائف حيث لن يتم استنساخها.
- </p>
-
- <h3>[property:String uuid]</h3>
- <p>
- [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من
- هذه الحالة كائن. يتم تعيين هذا تلقائيًا ولا يجب أن يكون
- تحرير.
- </p>
-
- <h2>الوظائف (Methods)</h2>
-
- <p>
- [page:EventDispatcher EventDispatcher] الطرق متوفرة على هذا
- صف.
- </p>
-
- <h3>[method:undefined addGroup]([param:Integer start]، [param:Integer count]، [param:Integer materialIndex])</h3>
- <p>
- يضيف مجموعة إلى هذه الهندسة ؛ انظر [page:BufferGeometry.groups groups]
- خاصية للحصول على التفاصيل.
- </p>
-
- <h3>[method:this applyMatrix4]([param:Matrix4 matrix])</h3>
- <p>تطبق تحويل المصفوفة على الهندسة.</p>
-
- <h3>[method:this applyQuaternion]([param:Quaternion quaternion])</h3>
- <p>يطبق التدوير الممثل بالرباعي على الهندسة.</p>
- <h3>[method:this center] ()</h3>
- <p>مركز الهندسة بناءً على مربع التحديد.</p>
-
- <h3>[method:undefined clearGroups]( )</h3>
- <p>يمسح جميع المجموعات.</p>
-
- <h3>[method:BufferGeometry clone]()</h3>
- <p>ينشئ نسخة من هذا BufferGeometry.</p>
-
- <h3>[method:undefined computeBoundingBox]()</h3>
- <p>
- يحسب مربع التحديد للهندسة ، ويحدث [page:.boundingBox]
- سمة. <br />
- لا يتم حساب مربعات التحديد افتراضيًا. يجب حسابها بشكل صريح
- حساب ، وإلا كانت `null`.
- </p>
-
- <h3>[method:undefined computeBoundingSphere]()</h3>
- <p>
- يحسب كرة التحديد للهندسة ، ويحدث [page:.boundingSphere]
- سمة. <br />
- لا تتم حساب كرات التحديد افتراضيًا. يجب حسابها بشكل صريح
- حساب ، وإلا كانت `null`.
- </p>
-
- <h3>[method:undefined computeTangents]()</h3>
- <p>
- يحسب ويضيف سمة مماسية لهذه الهندسة. <br />
- الحساب مدعوم فقط للهندسات المفهرسة وإذا تم تعريف الوضعية ،
- الطبيعية ، والأشعة فوق البنفسجية. عند استخدام خريطة طبيعية للفضاء المماس
- خريطة ، تفضل خوارزمية MikkTSpace المقدمة من قبل
- [page:BufferGeometryUtils.computeMikkTSpaceTangents] بدلاً من ذلك.
- </p>
-
- <h3>[method:undefined computeVertexNormals]()</h3>
- <p>تحسب قمم الأوجه للبيانات القمية المعطاة. بالنسبة للهندسات المفهرسة ، يضبط الأسلوب كل قمة عادية لتكون متوسط أوجه الوجه التي تشارك هذه القمة.
- بالنسبة للهندسات غير المفهرسة ، لا تتشارك القمم ، ويضبط الأسلوب كل قمة عادية لتكون نفس وجه الوجه.</p>
-
- <h3>[method:this copy]( [param:BufferGeometry bufferGeometry] )</h3>
- <p>ينسخ BufferGeometry آخر إلى هذا BufferGeometry.</p>
-
- <h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
- <p>تحذف [page:BufferAttribute attribute] بالاسم المحدد.</p>
-
- <h3>[method:undefined dispose]()</h3>
- <p>
- يطلق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذا المثيل. اتصل بهذا
- الأسلوب كلما لم يعد هذا المثيل مستخدمًا في تطبيقك.
- </p>
-
- <h3>[method:BufferAttribute getAttribute]( [param:String name] )</h3>
- <p>يرجع [page:BufferAttribute attribute] بالاسم المحدد.</p>
- <h3>[method:BufferAttribute getIndex] ()</h3>
- <p>يرجع [page:.index] buffer.</p>
-
- <h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
- <p>يعود `true` إذا كانت السمة بالاسم المحدد موجودة.</p>
-
- <h3>[method:this lookAt] ( [param:Vector3 vector] )</h3>
- <p>
- vector - نقطة عالمية للنظر إليها. <br /> <br />
-
- يدور الهندسة لمواجهة نقطة في الفضاء. يتم هذا عادةً كـ
- عملية واحدة ، وليس أثناء حلقة. استخدم [page:Object3D.lookAt] لـ
- الاستخدام النموذجي للشبكة في الوقت الفعلي.
- </p>
-
- <h3>[method:undefined normalizeNormals]()</h3>
- <p>
- سيكون كل متجه طبيعي في هندسة بقوة 1. هذا سوف
- تصحح الإضاءة على سطوح الهندسة.
- </p>
-
- <h3>[method:this rotateX] ( [param:Float radians] )</h3>
- <p>
- قم بتدوير الهندسة حول المحور X. يتم هذا عادةً كعملية واحدة
- عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
- تدوير شبكة نموذجية في الوقت الفعلي.
- </p>
-
- <h3>[method:this rotateY] ( [param:Float radians] )</h3>
- <p>
- قم بتدوير الهندسة حول المحور Y. يتم هذا عادةً كعملية واحدة
- عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
- تدوير شبكة نموذجية في الوقت الفعلي.
- </p>
-
- <h3>[method:this rotateZ] ( [param:Float radians] )</h3>
- <p>
- قم بتدوير الهندسة حول المحور Z. يتم هذا عادةً كعملية واحدة
- عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
- تدوير شبكة نموذجية في الوقت الفعلي.
- </p>
-
- <h3>[method:this scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
- <p>
- قم بتغيير حجم بيانات الهندسة. يتم هذا عادةً كعملية واحدة ،
- وليس أثناء حلقة. استخدام [page:Object3D.scale] لـ
- تغيير حجم شبكات نموذجية في الوقت الفعلي.
- </p>
-
- <h3>[method:this setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
- <p>
- يضع سمة لهذه الهندسة. استخدام هذا بدلاً من خصائص
- الملكية ، لأن خريطة قائمة داخلية من [page:.attributes]
- يتم صيانته لتسريع التكرار على السمات.
- </p>
-
- <h3>[method:undefined setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>
- <p>
- قم بتعيين خاصية [page:.drawRange]. بالنسبة لـ BufferGeometry غير المفهرس ، count
- هو عدد القمم التي يتم عرضها. بالنسبة لـ BufferGeometry المفهرس ، count هو
- عدد المؤشرات التي يتم عرضها.
- </p>
-
- <h3>[method:this setFromPoints] ( [param:Array points] )</h3>
- <p>تضبط سمات هذا BufferGeometry من مصفوفة من النقاط.</p>
-
- <h3>[method:this setIndex] ( [param:BufferAttribute index] )</h3>
- <p>ضبط buffer [page:.index].</p>
-
- <h3>[method:Object toJSON]()</h3>
- <p>
- قُم بتحويل هندسة buffer إلى three.js
- [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
- </p>
-
- <h3>[method:BufferGeometry toNonIndexed]()</h3>
- <p>إرجاع إصدار غير مفهرس من BufferGeometry المفهرس.</p>
-
- <h3>[method:this translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
- <p>
- قُم بترجمة الهندسة. يتم هذا عادةً كعملية واحدة ،
- وليس أثناء حلقة. استخدم [page:Object3D.position] لـ
- ترجمة شبكات نموذجية في الوقت الفعلي.
- </p>
-
- <h2>المصدر (Source)</h2>
- <p>
- [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
- </p>
- </body>
- </html>
|