تور لحظه آخری
امروز : پنجشنبه ، 15 آذر 1403    احادیث و روایات:  امام صادق (ع):عالمان فرمانرواى بر شهرياران هستند.
سرگرمی سبک زندگی سینما و تلویزیون فرهنگ و هنر پزشکی و سلامت اجتماع و خانواده تصویری دین و اندیشه ورزش اقتصادی سیاسی حوادث علم و فناوری سایتهای دانلود گوناگون شرکت ها

تبلیغات

تبلیغات متنی

صرافی ارکی چنج

صرافی rkchange

سایبان ماشین

دزدگیر منزل

اجاره سند در شیراز

قیمت فنس

armanekasbokar

armanetejarat

صندوق تضمین

Future Innovate Tech

پی جو مشاغل برتر شیراز

آراد برندینگ

خرید یخچال خارجی

موسسه خیریه

واردات از چین

حمية السكري النوع الثاني

ناب مووی

دانلود فیلم

بانک کتاب

دریافت دیه موتورسیکلت از بیمه

طراحی سایت تهران سایت

irspeedy

درج اگهی ویژه

تعمیرات مک بوک

دانلود فیلم هندی

قیمت فرش

درب فریم لس

زانوبند زاپیامکس

روغن بهران بردبار ۳۲۰

قیمت سرور اچ پی

خرید بلیط هواپیما

بلیط اتوبوس پایانه

تعمیرات پکیج کرج

لیست قیمت گوشی شیائومی

خرید فالوور

پوستر آنلاین

بهترین وکیل کرج

بهترین وکیل تهران

خرید اکانت تریدینگ ویو

خرید از چین

خرید از چین

تجهیزات کافی شاپ

ساختمان پزشکان

دوربین سیمکارتی چرخشی

همکاری آی نو و گزینه دو

کاشت ابرو طبیعی و‌ سریع

الک آزمایشگاهی

الک آزمایشگاهی

خرید سرور مجازی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

قیمت بالابر هیدرولیکی

لوله و اتصالات آذین

قرص گلوریا

نمایندگی دوو در کرج

خرید نهال سیب

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

وکیل ایرانی در استانبول

رفع تاری و تشخیص پلاک

پرگابالین

دوره آموزش باریستا

مهاجرت به آلمان

بهترین قالیشویی تهران

بورس کارتریج پرینتر در تهران

تشریفات روناک

نوار اخطار زرد رنگ

ثبت شرکت فوری

تابلو برق

خودارزیابی چیست

 






آمار وبسایت

 تعداد کل بازدیدها : 1838026836




هواشناسی

نرخ طلا سکه و  ارز

قیمت خودرو

فال حافظ

تعبیر خواب

فال انبیاء

متن قرآن



اضافه به علاقمنديها ارسال اين مطلب به دوستان آرشيو تمام مطالب
archive  refresh

اموزش papervision -


واضح آرشیو وب فارسی:سایت ریسک: اموزش papervision javadsava 10 مرداد 1388, 21:27برای اینکه پست های من همش خواهش و سوال نباشه این آموزش دست و پا شکسته رو می زارم. Interactivity برای ایجاد تعامل فعال بین کاربر و محیط سه بعدی باید از کلاس InteractiveScene3DEvent استفاده کنیم. من در این جا از سورس arjmand 200 که تو پست های اولش گذاشته بود استفاده می کنم . توی این سورس ما یک کره در حال گردش می بینیم. حالا می خواهیم وقتی کاربر روی کره کلیک کرد در پانل output یک چیزی نوشته بشه. در ابتدا باید کلاس InteractiveScene3DEvent رو اضافه کنیم: import org.papervision3d.events.InteractiveScene3DEvent; بعد از اون باید interactive متریالی که برای کره استفاده کردیم رو فعال کنیم. برای این کار بعد از تعریف متریال این کد رو اضافه می کنیم: matrial_bmp.interactive = true; قدم بعدی اضافه کردن EventListener (که من اون رو گوش دهنده ی رخداد ترجمه می کنم) به کره هست. EventListener دو پارامتر می گیره که اولی نوع رخداد مورد انتظار و دومی تابعی هست که با روی دادن رخداد باید اجرا بشه. بنابراین بعد از افزودن کره به scene ، کد زیر رو اضافه می کنیم: sphere.addEventListener( InteractiveScene3DEvent.OBJECT_PRESS, press ); همانطور که می بینید من تابع press رو به عنوان پارامتر دوم معرفی کردم. حالا باید این تابع رو اضافه بکنیم: function press(e:InteractiveScene3DEvent){ trace("sphere"); } حالا هر موقع روی کره کلیک کنیم کلمه sphere در پانل output نوشته می شه. ************************************************** ************** اساتید محترم اگر جایی رو اشتباه گفتم لطفا تصحیح کنید. arjmand 200 21 مرداد 1388, 12:29با سلام خدمت همه دوستداران فلش در اینجا من به خاطر قولی که داده بودم اموزش papervision رو میخوام بذارم البته نه بصورت کامل بلکه بصورتی که دوستان بتونن کارهای سه بعدی خودشون رو که به صورت ساده هست انجام بدن و برای کارهای پیشرفته بهتون مراجع خارجی رو پیشنهاد میدم . و اما papervision دوستان من میخوام در چند جلسه ، اموزش این کلاس رو بزارم و به خاطر اینکه این کلاس خیلی وسیع هستش و اطلاعات ما هم ناقص هر کسی فکر میکنه میتونه کمک کنه بیاد و در نوشتن این پست یاریمان کنه من در اول میخوام در مورد این کلاس و تعاریف و در جلسات بعدی اموزشهای اون رو بزارم البته برای این که بتونین این اموزشها رو خودتون انجام بدین زیاد لازم نیست که as3 بلد باشین و اشنایی کم هم میتونه کارتون رو راه بندازه اما برای کارهای حرفه ای همیشه به دانسته های حرفه ای نیاز هست خوب من برای شروع بگم که من این کلاس رو در همین انجمن واسه دانلود گذاشتم این هم لینکش اینم اولش بگم که هر گونه اشتباه تایپی که باشه به خاطر اینه که بنده عجله دارم و اما شروع : ببینید دوستان اونایی که با فلش مدتی هستش کار میکنن اکثرشون از اینکه فلش بهشون اجازه نمیداد که بعد سوم رو در کارشون وارد کنن خیلی شاکی بودن بعضی از این گروه که یکم ریاضیشون خوب بود خودشون تونستن این مشکل رو تا یه جای حل کنن اما دسته دیگه مثل من که ریاضیشون ضعیف بود نمیتونستن این مشکل رو حل کنن برای همین سراغ این کلاسهای سه بعدی رفتن اما از طرف دیگه این کلاس صرفا برای بعد سوم نبود و خصوصیات زیادی داشت مثل موتور رندر ، قابلیت تکسچر گذاشتن ، قابلیت نور و سایه و موتور فیزیکی این کلاس که خوب باری هر حرفه ای در فلش ساختن این چیزها زیاد اسون نبود و واسه همینه که این کلاس اینقدر پیشرفت کرد خوب تعارف papervision : قبل از اینکه شما بتونین با این کلاس کار کنین باید چندتا تعریف رو بدونین تا بتونین باهاش کار کنین و اما تعاریف : 1) Scene: ببیند Scene یا چشم انداز که در فلش 9 به بعد معرفی شد البته به عنوان کلاس چون قبلا در خود فلش بود ولی نه به عنوا کلاس در اکشن اسکریپت ، همون فضایی هستش که تمامی عناصر شما در اونجا هستش یه شما یه فضای سه بعدی رو فرض کنین که در این فضا هر عنصری هست (یعنی موی کلیپ ، sprite ، text ، video ) و غیره این فضا همون Scene هستش شما میتونین هر عنصری رو که در به این فضا اضافه کنین همون طور که در فلش با addChild هر ابجکتی رو به stage وارد میکردین در این جا هم میتونین با addChild هر عنصری رو که میخواین به Scene وارد کنین و خوب به تبع هر چی رو که وارد کنین باید ازش یه رندر بگیرین (قابل توجه دوستان سه بعدی کار ) البته با این تفاوت که همه ابجکتهای شما در این Scene علاو بر متد هایی که قبلا داشت چند متد دیگه بهشون اضافه شده مثل ( z , rotationX , rotationY , rotationZ و ]چند متد دیگه که در ادامه مباحث خواهم گفت اینم واسه اینکه بدونین منظورم چیه 2) Viewport Viewport یا فضایی که نشون داده میشه و اصلا سه بعدی نیست و دوبعدیه یه مثال برای اینکه دقیق منظور رو از Viewport بدونین چیه همان صفحه مانیتور ، این صفحه یک Viewport هستش که البته داخلش یه Scene هستش که میتونین هر چیزی رو ببیند این Viewport متد زیاد خاصی نداره و اکثرا برای کنترل طول و عرض و کنترل بر امدگی و چندتا متد دیگه هستش که بعد اونا رو میگم این قسمت هم در عکس کاملا مشخصه 3) Renderer Renderer یا موتور رندر papervision که قسمتی هستش که هر چی رو که شما در Scene دارید بسته به نوع زاویه Camera رندر میکنه و 3 نوع داره که عبارتند از BasicRenderEngine، LazyRenderEngine ، QuadrantRenderEngine که بعدا میگم چه نوع موتوری رو باید بسته به کارتون انتخاب کنین البته اخری که مشخصه یه موتور حرفه ای که قدرت تصویر کردنش زیاده 4)Camera Camera یا دوربین که کاملا مشخصه چیه و مثل یه دوربین میتونه قسمتی از کار رو که جلوی لنز هست رو نشون بده این دوربین هم 4 توع هستش که عبارتند از 1) Target 2)Free 3)Debug 4)Spring که این ها رو هم در جلسه بعدی خواهم گفت که جه دوربینی بیرای چه کاری خوب هست 4) materials papervision این قابلیت رو به شما میده که هر ابجکتی رو که دارین بهش متریال بدین این متریال همه چی میتونه باشه عکس ، ویدیو و فایل swf و color و انواع زیادی داره که عبارتند از BitmapAssetMaterial BitmapColorMaterial BitmapFileMaterial BitmapMaterial BitmapViewportMaterial BitmapWireframeMaterial ColorMaterial MovieAssetMaterial MovieMaterial VideoStreamMaterial WireframeMaterial و یه قابلیت دیگه برای سایه زنی برای هر ابجکت که عبارتند از CellShader EnvMapShader FlatShader GouraudShader ILightShader IShader LightShader PhongShader ShadedMaterial Shader ShaderCompositeModes البته قول نمیدم همشو توضییح بدم ولی تا یه جاهایی رو توضییح میدم چون واقعا خودم هم با همشون کار نکردم بخصوص این اخریا واسه سایه زنی که خیلی سنگینه و واسه سیستم من که خیلی زغالی کاربرد نداره البته papervision چندتا قابلیت دیگه برای متریال سازی پیشرفته داره که فقط اسمشون رو میذارم BitmapParticleMaterial CompositeMaterial FogMaterial Letter3DMaterial LineMaterial MovieAssetParticleMaterial MovieParticleMaterial ParticleBitmap ParticleMaterial VectorShapeMaterial که این partical متریالها واقعا استثنایی هستن ئ در همه موتورهای سه بعدی نیست فکر کنم حتی تو نرمافزارهای سه بعدی هم این امکانات نیستن خوب این جلسه تموم شد تا جلسه بعد موفق باشین BioDread 21 مرداد 1388, 14:12مرسی خوب بود امیدوارم ادامه بدی!!! Avang2005 21 مرداد 1388, 14:23سلام دوست من مرسي از آموزشت ! موفق باشيد arman_p 21 مرداد 1388, 14:55It `s perfrct arjmand 200 21 مرداد 1388, 18:39خوب جلسه دوم رو شروع میکنم احتمالا تعاریف در این جلسه خاتمه پیدا کنه و در جلسات اینده نحوه استفاده رو بهتون میگم خوب در جلسه اول با متریالها بحث رو تموم کردم حالا با متریالها شروع میکنم و انواع اونها رو میگم 1) Bitmap materials همونطور که از اسمش برمیاد برای اینه که برای هر ابجکتی که درست میکنین یک متریال با عکس استفاده کنین یعنی فقط از نوع bitmap ، اگه با bitmap در as3 کار کرده باشین میتونین 2 نوع bitmap داشته باشین یا اون رو با کلاس bitmapData , Bitmap خودتون تولید کنین یا از بیرون یه عکس رو لود کرده یا عکس رو از کتابخانه لود کنین سخن کوتاه کنم که در هر صورت با این کلاس فقط میتونین متریال از نوع bitmap رو بر روی ابجکت ست کنین 2)Color materials این هم برای ست کردن متریال از نوع color هستش که میتونیه هم از نوع solid یا از نوع gradient باشه 3) Movie materials میتونه از نوع فایل swf که از خارج لود میشه و یا از نوع movieClip که ازداخل تولید میکنین 4) Shaded materials قبلیت جدیدی در papervision که از ورژن دو به بعد معرفی شد و اما برای توضییح میتونم این رو بگم که یک نوع از متریال از نوع های بالا هستش که میتونه بسته به محل قرار گرفتن light سایه رو ابجکت ایجاد بشه عینا مثل حالت طبیعی که باهاش روبرو میشین و 4 نوع داره که میتونین با عکس کاملا منظورم رو متوجه بشین 1) Cell 2)Flat Shade 3 )Gouraud 4) Phong =============================================== البته یه نوع از متریال هست که از نوع videoStream هستش که کاملا مشخصه که میتونین ویدیو هایی که از بیرون لود میکنین به صورت Stream به عنوان متریال به ابجکت ست کنین این دیگه خیلی جالبه یه نوع WireframeMaterial هم هستش که متریال نیست و ابجکت رو به صورت برهنه نشون میده متریالهای از نوع partical ها هم بمونه واسه اخر چون خیلی درکشون مشکله و پیچیده هستن در اینجا میشه گفت که تعاریف تموم شده در جلسه بعدی به انواع اشکال در papervision میپردازم و چند مبحث دیگه arjmand 200 22 مرداد 1388, 01:51خوب به نام خدا در این جلسه که فکر کنم اخرین جلسه برای تعاریف هست مباحثی که از تعاریف مونده رو توضییح میدم تا بریم برای کار با papervision Primitives primitives یا اشکال در فلش یه سری از اشکال پیش ساخته در papervision هستن که مثل نرمافزار های سه بعدی که این اشکال رو داخلشون دارن خوب این primitives زیاد هم نیست و کلا هفت تا هستش که عبارتند از : 1 ) Arrow 2)Cone 3)Cube 4)Cylinder 5)PaperPlane 6)Sphere 7)Plane البته همه اشکال اینها نیستن بلکه میشه با به ارث بردن بعضی خواص و متد از این اشکال اشکال پیچیده هم ساخت که زیاد سخت هم نیست فکر کنم یه نمونه هم از اینا بزارم خوب اینم از تعاریف در papervision که تموم شد البته تعاریف زیاده در papervision ، چون فکر میکنم میتونه بعضی از تعاریف درکشون مشکل باشه به خاطر همون اونا رو به بعد میزارم شروع کار برای شروع کار میتونین باید کلاس papervision که در پست اول گذاشتم دانلود کنین و در کنار پروزه بزارین خوب برای اولین کار میخوام نحوه کد نویسی و استفاده از این کلاس رو بگم که یعنی چطوری باید Scene و viewPort و Camera رو ایجاد کرد و ازشون رندر گرفت مراحل کار خوب در اول کار ما محیط رو اماده کنیم تا بتونیم یه فضای سه بعدی رو ایجاد کنیم برای شروع ما به این کدها نیاز داریم که همشون رو توضییح میدم import org.papervision3d.cameras.Camera 3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; خوب همانطور که گفتم برای اینکه بتونیم فضای سه بعدی رو تعریف کنیم به چیز زیادی احتیاج نداریم جز یه Scene که فضا و چارچوب کلی هستش یه موتور رندر ساده یک viewport یا پنجره دید و یه دوربین که بتونه کل Scene رو ببینه همین من در این خط کدها هم همینا رو نوشتم خوب برای مرحله اول از هر کدام یه نمونه میسازم var viewport:Viewport3D = new Viewport3D() var scene:Scene3D = new Scene3D() var camera:Camera 3D = new Camera 3D() var renderer:BasicRenderEngine = new BasicRenderEngine() و اما متدهایی که این کلاسها اوتا رو قبول میکنه 1) ViewPort public function Viewport3D(viewportWidth:Number = 640, viewportHeight:Number = 480, autoScaleToStage:Boolean = false, interactive:Boolean = false, autoClipping:Boolean = true, autoCulling:Boolean = true) ViewPort ما مثل هر کلاسی چندتا پارامتر داره که باید اونا رو بگم viewportWidth = عرض صفحه ای که دراین میبینین - اشتباه نکنین این عرض با عرض فایل swf برابر نیست میتونه با اون برابر باشه و میتونه هم نباشه بستگی به فاصله دوربین از Scene و viewport داره مثال : شما یه پنجره دارین که با اون پنجره میتونین بیرون رو ببینین این پنجره واسه خودش یه عرض و یه طول داره چشم شما به عنوان دوربین به ازای فاصله ای که از پنجره داره میتونه یه عرض و یه پهنا از محیط بیرون رو ببینه و به ازای یه فاصله مشخص از viewport یه عرض و طول مشخص از Scene رو میبینین 2) viewportHeight = طول viewport 3 ) autoScaleToStage که بسته به اندازه stage فضای دید رو scale کنه یا نه همون مقادیر autiscale فلش 4) interactive یه مقدار boolean مبنی بر اینکه ایا فضای سه بعدی باید با موس یا کیبرد کنترل بشه یا نه 5)autoClipping  یه مقدار boolean به معنی اینکه ایا فقط مقدار درون viewport دیه بشه یا نه خارج از این محدوده هم دیده بشه که مشخص میکنه اگه true باشه موتور رندر باید محیط خارج از دید رو هم باید رندر کنه و بر عکس 6) autoCulling که مشخص میکنه ایا ابجکتی که پشت یه ابجکت دیگه هست باید رندر بشه یا نه متدهای camera public function Camera 3D(fov:Number=60, near:Number=10, far:Number=5000, useCulling:Boolean=false, useProjection:Boolean=false) 1) far : نمیدونم چطوری این رو بگم به طور کلی دورترین فاصله از دوربین شما اون عکسی رو که گذاشته بودم رو فرض کنین فاصله صفحه پشتی اون مکعب از دوربین همین مقدار far هستش 2) near فاصله نزدیکتین نقطه از دوربین 3) orthoScale اگه با نرم افزارهای سه بعدی کار کرده باشین ما دو نوع دوربین داریم یکی پرسپکتیو و یکی هم orthographic که این مقدار مقدار جمع شدگی این نوع بعد رو میگه این عکس رو ببینین کامل منظورم رو متوجه میشین 4)  useCulling که مال همون متد در viewport و میگه ایا باید از این قابلیت استفاده بشه یا نه 5 ) useProjectionMatrix همون نوع دوم دوربین که باید از این دوربین استفاده کنه یا نه کلاس Scene هم مانند هم نوع خودش در as3 متدی نداره و بدون متد هست کلاس BasicRenderEngine مثل Scene متدی نداره در اخر باید viewport رو به لیست نمایش add کنیم addChild(viewport); اگه در اینجا در پنل output این متن رو دیدین بدونین که تا اینجا درست اومدین INFO: Papervision3D Public Beta 2.0 - Great White (December 3rd, 2008) خوب کار ما در ایجاد محیط سه بعدی تموم شد حالا هر ابجکتی رو که میسازین باید به داخل Scene اضافه کنیم من برای اتمام کار یه ابجکت از نوع Sphere داخل Scene اضافه میکنم var sphere:Sphere = new Sphere(); scene.addChild(sphere); در اخر هم باید از پروزه رند بگیرین renderer.renderScene(scene, camera, viewport); و اینم تمام کدها : import org.papervision3d.cameras.Camera 3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; var viewport:Viewport3D = new Viewport3D(); var scene:Scene3D = new Scene3D(); var camera:Camera 3D = new Camera 3D(); var renderer:BasicRenderEngine = new BasicRenderEngine(); addChild(viewport); var sphere:Sphere = new Sphere(); scene.addChild(sphere); renderer.renderScene(scene, camera, viewport); بالاخره تموم شده تا جلسه بعدی ++Hadi++ 22 مرداد 1388, 19:30جناب ارجمند یک دنیا ممنون ... یاشاسون آذربایجان... arjmand 200 22 مرداد 1388, 19:43خواهش میکنم امبدوارم مفید باشه arjmand 200 22 مرداد 1388, 22:34خوب جلسه چهارم رو شروع میکنم این جلسه رو با ادامه مباحث جلسه قبل شروع میکنم جلسه قبل ما موفق شدیم یه ابجکت از نوع Sphere ایجاد کنیم حالا میخوام این کار رو تکمیل کنم و نحوه اضافه کردن متریال و چندتا نقطه دیگه رو بگم . خوب برای شروع میخوام چند نقطه در مورد انواع ابجکتها و متدهای این ابجکتها بگم دوستان من در جلسه قبلی با استفاده از این کد یه کره ساختم در حالی که این تابع برای ایجاد کره چند متد داشت که اونجا نگفتم ولی میخوام تو این جلسه توضییح بدم var sphere:Sphere = new Sphere(); این تمامی متدهای ابجکت Sphere هستش : public function Sphere( material:MaterialObject3D=null, radius:Number=100, segmentsW:int=8, segmentsH:int=6 ) 1) material : خوب پارامتر اول material که از نوع MaterialObject3D هستش برای اینه که شما بتونین برای این ابجکت یه متریال بسازین که در ادامه نحوه ساختن رو میگم 2) radius شعاع کره 3) segmentsW و segmentsH دوستان مقدار segment در دو راستای horizental و vertical هستش که اجزایی که باید کره ما رو تشکیل بده مشخص میکنه ، هر چه این سگمنتها بیشتر باشه کره کاملتر و دقیقتر و هر چه کم باشه کره دارای دقت کمی خواهد بود خوب حالا برای اینکه بتونیم یه متریال به ابجکتمون نسبت بدیم باید این متریال رو بسازیم برای اینکار میتونیم از متریالهایی که گفتم استفاده کنیم که اوناع مختلفی داره من میخوام از نوع BitmapMaterial استفاده کنم برای شروع باید این خط کد رو رو اضافه کنیم : import org.papervision3d.materials.BitmapMaterial; چون ما هنوز کلاس BitmapMaterial رو وارد پروژه نکرده بودیم در مرحله بعد با این خط کد یه نمونه از این کلاس رو میسازیم : var bmp:BitmapData = new BMPMaterial(800,600) var matrial_bmp:BitmapMaterial = new BitmapMaterial(bmp)  دوستان کلاس BitmapMaterial دوتا ورودی میگیره : public function BitmapMaterial( asset:BitmapData=null, precise:Boolean = false) asset : همونطور که مشخصه یه نمونه از کلاس BitmapData که اگه اشنایی دارین یه کلاس هستش که میتونین با اون یه DisplayObject از نوع Bitmap رو بسازین **** من در اینجا این نقطه رو میگم که مخاطب این اموزشها کسایی هستن که حداقل با این کلاسها در فلش کار کردن و اشنایی دارن وگرنه بدون درک مفاهیم اساسی در فلش نمیشه این اموزشها رو درست یاد گرفت **** من در اینجا یه عکس رو وارد کتابخانه فلش کردم و اون رو با linkage به نام BMPMaterial به اکشن اسکریپت ایمپورت کردم حالا شما با استفاده از این کد میتونین این عکس رو به عنوان یه متریال به BitmapMaterial ست کنین تا یادم نرفته این رو هم بگم که اون پارمتر دوم هم دقت متریال رو افزایش میده حالا کار ما تموم شد ما با این کد این متریال رو به کره نسبت میدیم var sphere:Sphere = new Sphere(matrial_bmp,550,40,40); من برای اینکه بتونیم تمام اطراف کره رو ببینیم با این خط کد کره رو میچرخونم addEventListener(Event.ENTER_FRAME , mainFun) function mainFun(e:Event){ sphere.rotationY +=10 renderer.renderScene(scene, camera, viewport); } اینم از کد نهایی پروژه و نمونه کار : // من کلاسهایی رو که در این پروزه لازمه رو در اینجا وارد میکنم import org.papervision3d.cameras.Camera 3D; import org.papervision3d.objects.primitives.Sphere; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import org.papervision3d.materials.BitmapMaterial; //در اینجا از این کلاسها یه نمونه میسازم var viewport:Viewport3D = new Viewport3D(800,600); var scene:Scene3D = new Scene3D(); var camera:Camera 3D = new Camera 3D(); var renderer:BasicRenderEngine = new BasicRenderEngine(); var bmp:BitmapData = new BMPMaterial(800,600) var matrial_bmp:BitmapMaterial = new BitmapMaterial(bmp,true) //بدنه اصلی پروژه هم اینجاست addChild(viewport); var sphere:Sphere = new Sphere(matrial_bmp,550,40,40); sphere.x =0 sphere.y = 0 scene.addChild(sphere); addEventListener(Event.ENTER_FRAME , mainFun) function mainFun(e:Event){ sphere.rotationY +=10 renderer.renderScene(scene, camera, viewport); }   arjmand 200 22 مرداد 1388, 23:49خوب جلسه بعدی چون هر روز دو جلسه داریم *** خوب این نقطه رو هم بگم دوستان اگه پیشنهادی یا انتقادی دارن مطرح کنن تا از نظرات دوستان هم استفاده کنیم هر کسی هم که میتونه کمک کنه بسم الله .... خوب در این جلسه میخوام کار با primitives ها و یه مقداری هم کار با متریالها رو بگم primitives خوب همونطور که گفتم ما 7 نوع primitives داریم که نوع Sphere رو گفتم و 6 نوعش موند 1) Cone :  مثل Sphere هستش با یه متد اضافی : public function Cone( material:MaterialObject3D=null, radius:Number=100, height:Number=100, segmentsW:int=8, segmentsH:int=6 ) 2) Cube public function Cube( materials:MaterialsList, width:Number=500, depth:Number=500, height:Number=500, segmentsS:int=1, segmentsT:int=1, segmentsH:int=1, insideFaces:int=0, excludeFaces:int=0 ) 1 ) materials:MaterialsList : خوب دوستان MaterialsList چیه ؛ دوستان مکعب ما یه ابجکت 6 وجهی که هر وجهش باید یه متریال داشته باشه برای اینکار ما با متریال لیست میتونیم برای هر وجه مکعب یه متریال ست کنیم نحوه کار با اونهم خیلی ساده هست اینم یه نمونه کد واسه متریال لیست ، البته در مورد MovieAssetMaterial جلسه بعدی توضییح میدم برای تست این کد هم باید یه موی کلیپ بسازین و در کتابخانه اون رو با نام CUbeMat به اکشن اسکریپت export کنین // من کلاسهایی رو که در این پروزه لازمه رو در اینجا وارد میکنم import org.papervision3d.cameras.Camera 3D; import org.papervision3d.objects.primitives.*; import org.papervision3d.render.BasicRenderEngine; import org.papervision3d.scenes.Scene3D; import org.papervision3d.view.Viewport3D; import org.papervision3d.materials.utils.MaterialsList; import org.papervision3d.materials.MovieAssetMaterial; //در اینجا از این کلاسها یه نمونه میسازم var viewport:Viewport3D = new Viewport3D(800,600); var scene:Scene3D = new Scene3D(); var camera:Camera 3D = new Camera 3D(); var renderer:BasicRenderEngine = new BasicRenderEngine(); var material:MovieAssetMaterial = new MovieAssetMaterial("CUbeMat", true, true); material.doubleSided =true; var material_list:MaterialsList = new MaterialsList(); material_list.addMaterial(material, "all"); //بدنه اصلی پروژه هم اینجاست addChild(viewport); var sphere:Cube = new Cube(material_list,550,550,400,20,20,20,2,2); sphere.x =0; sphere.y = 0; scene.addChild(sphere); addEventListener(Event.ENTER_FRAME , mainFun); function mainFun(e:Event) { sphere.rotationY +=10; renderer.renderScene(scene, camera, viewport); } 2) width , height , depth , segmentS , segmentH و SegmentT رو که هم مشخصه 3) excludeFaces : وجهایی که نباید باشه 4) اونیکی هم برعکس اینه در اخر یه نمونه از این ابجکت میزارم ////////////////////////////// 3) Cylinder متهدهای این ابجکت هم اینجاست و کاملا مشخصه و چیزی واسه گفتن نداره public function Cylinder( material:MaterialObject3D=null, radius:Number=100, height:Number=100, segmentsW:int=8, segmentsH:int=6, topRadius:Number=-1, topFace:Boolean=true, bottomFace:Boolean=true ) 4)PaperPlane خیلی ساده ست همون هواپیما که بچگی ها میساختیم :wink: public function PaperPlane( material :MaterialObject3D=null, scale :Number=0 ) 5) Plane public function Plane( material:MaterialObject3D=null, width:Number=0, height:Number=0, segmentsW:Number=0, segmentsH:Number=0 ) خوب ابجکتها تموم شدن 6) Arrow اینم که خیلی ساده public function Arrow( material:MaterialObject3D=null ) خوب ابجکتها هم تموم شد -------------------------------- متریالها خوب همون طور که گفتم ما 11 تا متریال داشتم که عبارتند از : BitmapAssetMaterial BitmapColorMaterial BitmapFileMaterial BitmapMaterial BitmapViewportMaterial BitmapWireframeMaterial ColorMaterial MovieAssetMaterial MovieMaterial VideoStreamMaterial WireframeMaterial اون 6 تای اولی میشه گفت شبیه هم هستن متریال نوع Color ساده ترین نوع از متریالهاست MovieAssetMaterial تقریبا شبیه BitmapAssetMaterial هستش با این تفاوت که از نوع موی کلیپ هستش VideoStreamMaterial یکم پیچیدس ولی با یه مثال میشه اون رو هم فهمید WireframeMaterial هم مثله Color متریاله با این تفاوت که ابجکت رو به صورت برهنه نشون میده این جلسه هم تموم شده انشالله در جلسه بعدی مفصل در مورد متریالها بحث خواهد شد پس تا جلسه بعدی arjmand 200 22 مرداد 1388, 23:49دوستان شاید کد نویسی در papervision به خاطر درست نشون ندادن syntax سخت باشه ولی با یکم کد نویسی این مشکل رو هم حل میکنیم BioDread 23 مرداد 1388, 13:49سلام در Primitives و در Cube میشه بیشتر راجع به دو پارامتر آخر توضیح بدی من این طوری فهمیدم که excludeFaces برای وجه های بیرونی هست و InsideFace برای وجه های درونی!!! درسته؟ پس چرا من وقتی مقدار excludeFaces رو برابر با 6 و مقدار insideFace رو برابر با 0 میزارم دو تا از وجه های خارجی حذف میشن لطفا راجع به این دو پارامتر بیشتر توضیح بده!!! arjmand 200 23 مرداد 1388, 15:39اره یکم عجله کردی چون میخواستم امروز در مورد متریال لیست صحبت کنم ولی حالا که پرسیدی جوابت رو میدم . ببین درسته که insideFaces برای وجه داخلی ولی ما که نمیتونیم یه متریال یا موی کلیپ بسازیم که دو طرف داشته باشه البته در اکشن اسکریپت منظورم نیست یعنی با اکشن اسکریپت میشه این متریال رو ساخت که دو تا وجه داشته ولی با خود ابزارهای رسم منظورمه که در موردش توضیح میدم ببین کلا insideFaces رو هر عددی بزاری تغیری حاصل نمیشه یعنی اصلا ما متریالی نداریم که یه صفحه پشتی داشته باشه شما میتونی فقط excludeFaces رو تغیر بدی یعنی میتونی بعضی از وجهای بیرونی رو حذفش کنی ولی نه با این اعداد چون درسته کد excludeFaces مقدار init میگیره ولی این نوع اعداد رو نه بلکه این اعداد رو قبول میکنه : static public var FRONT :int = 0x01; /** * Back face selection */ static public var BACK :int = 0x02; /** * Right face selection */ static public var RIGHT :int = 0x04; /** * Left face selection */ static public var LEFT :int = 0x08; /** * Top face selection */ static public var TOP :int = 0x10; /** * Bottom face selection */ static public var BOTTOM :int = 0x20; ولی کار با این اعدا شاید واست سخت باشه به خاطر همین من با این روش که میگم کار کن ببین ما 6




این صفحه را در گوگل محبوب کنید

[ارسال شده از: سایت ریسک]
[مشاهده در: www.ri3k.eu]
[تعداد بازديد از اين مطلب: 211]

bt

اضافه شدن مطلب/حذف مطلب







-


گوناگون

پربازدیدترینها
طراحی وب>


صفحه اول | تمام مطالب | RSS | ارتباط با ما
1390© تمامی حقوق این سایت متعلق به سایت واضح می باشد.
این سایت در ستاد ساماندهی وزارت فرهنگ و ارشاد اسلامی ثبت شده است و پیرو قوانین جمهوری اسلامی ایران می باشد. لطفا در صورت برخورد با مطالب و صفحات خلاف قوانین در سایت آن را به ما اطلاع دهید
پایگاه خبری واضح کاری از شرکت طراحی سایت اینتن