BufferGeometry.html 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366
  1. <!DOCTYPE html>
  2. <html lang="ar">
  3. <head>
  4. <meta charset="utf-8" />
  5. <base href="../../../" />
  6. <script src="page.js"></script>
  7. <link type="text/css" rel="stylesheet" href="page.css" />
  8. </head>
  9. <body class="rtl">
  10. <h1>[name]</h1>
  11. <p>
  12. تمثيل شبكة ، خط ، أو هندسة نقطية. يتضمن مواقع الرأس ، ومؤشرات الوجه ، والمعايير ، والألوان ، والأشعة فوق البنفسجية ، والسمات المخصصة
  13. داخل المخازن المؤقتة ، مما يقلل من تكلفة تمرير كل هذه البيانات إلى وحدة معالجة الرسومات.
  14. </p>
  15. <p>
  16. لقراءة وتحرير البيانات في سمات BufferGeometry ، راجع
  17. [page:BufferAttribute] التوثيق.
  18. </p>
  19. <h2>مثال للكود</h2>
  20. <code>
  21. const geometry = new THREE.BufferGeometry();
  22. // إنشاء شكل مربع بسيط. نحن نكرر الأعلى الأيسر والأسفل الأيمن
  23. // الرؤوس لأن كل رأس يحتاج إلى الظهور مرة واحدة لكل مثلث.
  24. const vertices = new Float32Array( [
  25. -1.0, -1.0, 1.0, // v0
  26. 1.0, -1.0, 1.0, // v1
  27. 1.0, 1.0, 1.0, // v2
  28. 1.0, 1.0, 1.0, // v3
  29. -1.0, 1.0, 1.0, // v4
  30. -1.0, -1.0, 1.0 // v5
  31. ] );
  32. // itemSize = 3 لأنه يوجد 3 قيم (مكونات) لكل رأس
  33. geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
  34. const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
  35. const mesh = new THREE.Mesh( geometry, material );
  36. </code>
  37. <h2>مثال للكود (Index)</h2>
  38. <code>
  39. const geometry = new THREE.BufferGeometry();
  40. const vertices = new Float32Array( [
  41. -1.0, -1.0, 1.0, // v0
  42. 1.0, -1.0, 1.0, // v1
  43. 1.0, 1.0, 1.0, // v2
  44. -1.0, 1.0, 1.0, // v3
  45. ] );
  46. const indices = [
  47. 0, 1, 2,
  48. 2, 3, 0,
  49. ];
  50. geometry.setIndex( indices );
  51. geometry.setAttribute( 'position', new THREE.BufferAttribute( vertices, 3 ) );
  52. const material = new THREE.MeshBasicMaterial( { color: 0xff0000 } );
  53. const mesh = new THREE.Mesh( geometry, material );
  54. </code>
  55. <h2>أمثلة (Examples)</h2>
  56. <p>
  57. [example:webgl_buffergeometry شبكة بوجوه غير مفهرسة]<br />
  58. [example:webgl_buffergeometry_indexed شبكة بوجوه مفهرسة]<br />
  59. [example:webgl_buffergeometry_lines خطوط]<br />
  60. [example:webgl_buffergeometry_lines_indexed خطوط مفهرسة]<br />
  61. [example:webgl_buffergeometry_custom_attributes_particles جزيئات]<br />
  62. [example:webgl_buffergeometry_rawshader محركات الظل الخام]
  63. </p>
  64. <h2>المنشئ (Constructor)</h2>
  65. <h3>[name]()</h3>
  66. <div>
  67. ينشئ هذا [name] جديدًا. كما يضبط العديد من الخصائص على قيمة افتراضية
  68. قيمة.
  69. </div>
  70. <h2>الخصائص (Properties)</h2>
  71. <h3>[property:Object attributes]</h3>
  72. <p>
  73. يحتوي هذا الخريطة القائمة على الهوية على اسم السمة المراد تعيينها وكقيمة
  74. [page:BufferAttribute buffer] لتعيينه. بدلاً من الوصول إلى هذا
  75. الملكية مباشرة ، استخدم [page:.setAttribute] و [page:.getAttribute] ل
  76. الوصول إلى سمات هذه الهندسة.
  77. </p>
  78. <h3>[property:Box3 boundingBox]</h3>
  79. <p>
  80. مربع التحديد لـ bufferGeometry ، والذي يمكن حسابه بـ
  81. [page:.computeBoundingBox](). الافتراضي هو `null`.
  82. </p>
  83. <h3>[property:Sphere boundingSphere]</h3>
  84. <p>
  85. كرة التحديد لـ bufferGeometry ، والتي يمكن حسابها بـ
  86. [page:.computeBoundingSphere](). الافتراضي هو `null`.
  87. </p>
  88. <h3>[property:Object drawRange]</h3>
  89. <p>
  90. يحدد جزء الهندسة المراد عرضه. يجب عدم تعيين هذا
  91. مباشرة ، بدلاً من ذلك استخدم [page:.setDrawRange]. الافتراضي هو
  92. <code>
  93. { start: 0, count: Infinity }
  94. </code>
  95. بالنسبة لـ BufferGeometry غير المفهرس ، count هو عدد القمم التي يتم عرضها.
  96. بالنسبة لـ BufferGeometry المفهرس ، count هو عدد المؤشرات التي يتم عرضها.
  97. </p>
  98. <h3>[property:Array groups]</h3>
  99. <p>
  100. قسم الهندسة إلى مجموعات ، كل منها سيتم عرضه في
  101. مكالمة WebGL رسم منفصلة. هذا يسمح باستخدام مجموعة من المواد
  102. مع الهندسة. <br /> <br />
  103. كل مجموعة هي كائن من الشكل:
  104. <code>
  105. { start: Integer, count: Integer, materialIndex: Integer }
  106. </code>
  107. حيث يحدد start العنصر الأول في هذه المكالمة - الأول
  108. رأس للهندسة غير المفهرسة ، وإلا فإن المثلث الأول فهرس. عد
  109. يحدد كم عدد القمم (أو المؤشرات) المضمنة ، و materialIndex
  110. يحدد فهرس مجموعة المواد للاستخدام. <br /> <br />
  111. استخدم [page:.addGroup] لإضافة مجموعات ، بدلاً من تعديل هذا المصفوفة
  112. مباشرة. <br /> <br />
  113. يجب أن ينتمي كل رأس وفهرس إلى مجموعة واحدة فقط - يجب ألا تشترك المجموعات
  114. قمم أو مؤشرات ، ويجب ألا تترك القمم أو المؤشرات غير المستخدمة.
  115. </p>
  116. <!-- ملاحظة: كانت المجموعات تسمى drawCalls
  117. <h3>[property:Array drawcalls]</h3>
  118. <p>
  119. بالنسبة للهندسات التي تستخدم المثلثات المفهرسة ، يمكن استخدام هذا المصفوفة لتقسيم الكائن
  120. إلى عدة مكالمات رسم WebGL. سترسم كل مكالمة رسم بعض الفئات الفرعية من القمم
  121. في هذه الهندسة باستخدام [page:Material shader] المكون. قد يكون هذا ضروريًا إذا ،
  122. على سبيل المثال ، لديك أكثر من 65535 رأسًا في كائنك.
  123. </p> -->
  124. <h3>[property:Integer id]</h3>
  125. <p>رقم فريد لهذا الحال bufferGeometry.</p>
  126. <h3>[property:BufferAttribute index]</h3>
  127. <p>
  128. يتيح إعادة استخدام القمم عبر مثلثات متعددة ؛ هذا هو
  129. يسمى باستخدام "المثلثات المفهرسة". يرتبط كل مثلث بـ
  130. مؤشرات ثلاث قمم. لذلك تخزن هذه السمة فهرس
  131. كل رأس لكل وجه ثلاثي الأضلاع. إذا لم يتم تعيين هذه السمة ، فإن
  132. [page:WebGLRenderer renderer] يفترض أن كل ثلاثة مواقع متجاورة
  133. تمثل مثلثًا واحدًا. الافتراضي هو `null`.
  134. </p>
  135. <h3>[property:Boolean isBufferGeometry]</h3>
  136. <p>علامة للقراءة فقط للتحقق مما إذا كان الكائن المحدد من نوع [name].</p>
  137. <h3>[property:Object morphAttributes]</h3>
  138. <p>
  139. خريطة قائمة على [page:BufferAttribute]s التي تحمل تفاصيل هندسة المورف
  140. الأهداف. <br />
  141. ملاحظة: بمجرد عرض الهندسة ، لا يمكن تغيير بيانات سمة المورف
  142. يتغير. سيتعين عليك الاتصال [page:.dispose]() ، وإنشاء جديد
  143. نسخة من [name].
  144. </p>
  145. <h3>[property:Boolean morphTargetsRelative]</h3>
  146. <p>
  147. يستخدم للتحكم في سلوك هدف المورف ؛ عند تعيينه على true ، المورف
  148. يتم التعامل مع بيانات الهدف كإزاحات نسبية ، بدلاً من كـ
  149. المواقع / المعايير المطلقة. الافتراضي هو `false`.
  150. </p>
  151. <h3>[property:String name]</h3>
  152. <p>
  153. اسم اختياري لهذه الحالة bufferGeometry. الافتراضي هو فارغ
  154. سلسلة.
  155. </p>
  156. <h3>[property:Object userData]</h3>
  157. <p>
  158. كائن يمكن استخدامه لتخزين بيانات مخصصة حول BufferGeometry.
  159. يجب ألا يحتوي على مراجع للوظائف حيث لن يتم استنساخها.
  160. </p>
  161. <h3>[property:String uuid]</h3>
  162. <p>
  163. [link:http://en.wikipedia.org/wiki/Universally_unique_identifier UUID] من
  164. هذه الحالة كائن. يتم تعيين هذا تلقائيًا ولا يجب أن يكون
  165. تحرير.
  166. </p>
  167. <h2>الوظائف (Methods)</h2>
  168. <p>
  169. [page:EventDispatcher EventDispatcher] الطرق متوفرة على هذا
  170. صف.
  171. </p>
  172. <h3>[method:undefined addGroup]([param:Integer start]، [param:Integer count]، [param:Integer materialIndex])</h3>
  173. <p>
  174. يضيف مجموعة إلى هذه الهندسة ؛ انظر [page:BufferGeometry.groups groups]
  175. خاصية للحصول على التفاصيل.
  176. </p>
  177. <h3>[method:this applyMatrix4]([param:Matrix4 matrix])</h3>
  178. <p>تطبق تحويل المصفوفة على الهندسة.</p>
  179. <h3>[method:this applyQuaternion]([param:Quaternion quaternion])</h3>
  180. <p>يطبق التدوير الممثل بالرباعي على الهندسة.</p>
  181. <h3>[method:this center] ()</h3>
  182. <p>مركز الهندسة بناءً على مربع التحديد.</p>
  183. <h3>[method:undefined clearGroups]( )</h3>
  184. <p>يمسح جميع المجموعات.</p>
  185. <h3>[method:BufferGeometry clone]()</h3>
  186. <p>ينشئ نسخة من هذا BufferGeometry.</p>
  187. <h3>[method:undefined computeBoundingBox]()</h3>
  188. <p>
  189. يحسب مربع التحديد للهندسة ، ويحدث [page:.boundingBox]
  190. سمة. <br />
  191. لا يتم حساب مربعات التحديد افتراضيًا. يجب حسابها بشكل صريح
  192. حساب ، وإلا كانت `null`.
  193. </p>
  194. <h3>[method:undefined computeBoundingSphere]()</h3>
  195. <p>
  196. يحسب كرة التحديد للهندسة ، ويحدث [page:.boundingSphere]
  197. سمة. <br />
  198. لا تتم حساب كرات التحديد افتراضيًا. يجب حسابها بشكل صريح
  199. حساب ، وإلا كانت `null`.
  200. </p>
  201. <h3>[method:undefined computeTangents]()</h3>
  202. <p>
  203. يحسب ويضيف سمة مماسية لهذه الهندسة. <br />
  204. الحساب مدعوم فقط للهندسات المفهرسة وإذا تم تعريف الوضعية ،
  205. الطبيعية ، والأشعة فوق البنفسجية. عند استخدام خريطة طبيعية للفضاء المماس
  206. خريطة ، تفضل خوارزمية MikkTSpace المقدمة من قبل
  207. [page:BufferGeometryUtils.computeMikkTSpaceTangents] بدلاً من ذلك.
  208. </p>
  209. <h3>[method:undefined computeVertexNormals]()</h3>
  210. <p>تحسب قمم الأوجه للبيانات القمية المعطاة. بالنسبة للهندسات المفهرسة ، يضبط الأسلوب كل قمة عادية لتكون متوسط ​​أوجه الوجه التي تشارك هذه القمة.
  211. بالنسبة للهندسات غير المفهرسة ، لا تتشارك القمم ، ويضبط الأسلوب كل قمة عادية لتكون نفس وجه الوجه.</p>
  212. <h3>[method:this copy]( [param:BufferGeometry bufferGeometry] )</h3>
  213. <p>ينسخ BufferGeometry آخر إلى هذا BufferGeometry.</p>
  214. <h3>[method:BufferAttribute deleteAttribute]( [param:String name] )</h3>
  215. <p>تحذف [page:BufferAttribute attribute] بالاسم المحدد.</p>
  216. <h3>[method:undefined dispose]()</h3>
  217. <p>
  218. يطلق الموارد المتعلقة بوحدة معالجة الرسومات التي تم تخصيصها من قبل هذا المثيل. اتصل بهذا
  219. الأسلوب كلما لم يعد هذا المثيل مستخدمًا في تطبيقك.
  220. </p>
  221. <h3>[method:BufferAttribute getAttribute]( [param:String name] )</h3>
  222. <p>يرجع [page:BufferAttribute attribute] بالاسم المحدد.</p>
  223. <h3>[method:BufferAttribute getIndex] ()</h3>
  224. <p>يرجع [page:.index] buffer.</p>
  225. <h3>[method:Boolean hasAttribute]( [param:String name] )</h3>
  226. <p>يعود `true` إذا كانت السمة بالاسم المحدد موجودة.</p>
  227. <h3>[method:this lookAt] ( [param:Vector3 vector] )</h3>
  228. <p>
  229. vector - نقطة عالمية للنظر إليها. <br /> <br />
  230. يدور الهندسة لمواجهة نقطة في الفضاء. يتم هذا عادةً كـ
  231. عملية واحدة ، وليس أثناء حلقة. استخدم [page:Object3D.lookAt] لـ
  232. الاستخدام النموذجي للشبكة في الوقت الفعلي.
  233. </p>
  234. <h3>[method:undefined normalizeNormals]()</h3>
  235. <p>
  236. سيكون كل متجه طبيعي في هندسة بقوة 1. هذا سوف
  237. تصحح الإضاءة على سطوح الهندسة.
  238. </p>
  239. <h3>[method:this rotateX] ( [param:Float radians] )</h3>
  240. <p>
  241. قم بتدوير الهندسة حول المحور X. يتم هذا عادةً كعملية واحدة
  242. عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
  243. تدوير شبكة نموذجية في الوقت الفعلي.
  244. </p>
  245. <h3>[method:this rotateY] ( [param:Float radians] )</h3>
  246. <p>
  247. قم بتدوير الهندسة حول المحور Y. يتم هذا عادةً كعملية واحدة
  248. عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
  249. تدوير شبكة نموذجية في الوقت الفعلي.
  250. </p>
  251. <h3>[method:this rotateZ] ( [param:Float radians] )</h3>
  252. <p>
  253. قم بتدوير الهندسة حول المحور Z. يتم هذا عادةً كعملية واحدة
  254. عملية ، وليس أثناء حلقة. استخدم [page:Object3D.rotation] لـ
  255. تدوير شبكة نموذجية في الوقت الفعلي.
  256. </p>
  257. <h3>[method:this scale] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
  258. <p>
  259. قم بتغيير حجم بيانات الهندسة. يتم هذا عادةً كعملية واحدة ،
  260. وليس أثناء حلقة. استخدام [page:Object3D.scale] لـ
  261. تغيير حجم شبكات نموذجية في الوقت الفعلي.
  262. </p>
  263. <h3>[method:this setAttribute]( [param:String name], [param:BufferAttribute attribute] )</h3>
  264. <p>
  265. يضع سمة لهذه الهندسة. استخدام هذا بدلاً من خصائص
  266. الملكية ، لأن خريطة قائمة داخلية من [page:.attributes]
  267. يتم صيانته لتسريع التكرار على السمات.
  268. </p>
  269. <h3>[method:undefined setDrawRange] ( [param:Integer start], [param:Integer count] )</h3>
  270. <p>
  271. قم بتعيين خاصية [page:.drawRange]. بالنسبة لـ BufferGeometry غير المفهرس ، count
  272. هو عدد القمم التي يتم عرضها. بالنسبة لـ BufferGeometry المفهرس ، count هو
  273. عدد المؤشرات التي يتم عرضها.
  274. </p>
  275. <h3>[method:this setFromPoints] ( [param:Array points] )</h3>
  276. <p>تضبط سمات هذا BufferGeometry من مصفوفة من النقاط.</p>
  277. <h3>[method:this setIndex] ( [param:BufferAttribute index] )</h3>
  278. <p>ضبط buffer [page:.index].</p>
  279. <h3>[method:Object toJSON]()</h3>
  280. <p>
  281. قُم بتحويل هندسة buffer إلى three.js
  282. [link:https://github.com/mrdoob/three.js/wiki/JSON-Object-Scene-format-4 JSON Object/Scene format].
  283. </p>
  284. <h3>[method:BufferGeometry toNonIndexed]()</h3>
  285. <p>إرجاع إصدار غير مفهرس من BufferGeometry المفهرس.</p>
  286. <h3>[method:this translate] ( [param:Float x], [param:Float y], [param:Float z] )</h3>
  287. <p>
  288. قُم بترجمة الهندسة. يتم هذا عادةً كعملية واحدة ،
  289. وليس أثناء حلقة. استخدم [page:Object3D.position] لـ
  290. ترجمة شبكات نموذجية في الوقت الفعلي.
  291. </p>
  292. <h2>المصدر (Source)</h2>
  293. <p>
  294. [link:https://github.com/mrdoob/three.js/blob/master/src/[path].js src/[path].js]
  295. </p>
  296. </body>
  297. </html>