تم النشر منذ 21 May 2013 السلام عليكم و رحمة الله و بركاتهاحاول ان ارسم بحر بopenGL لكن بلغة C# و قد وجدت كود بلغة c++ ولكن لا اعرف كيفية عمل تقنية 3d Texture ,هذا الكود int res = 64;int nr = res / 2;int nv = res * 2; int nb = res / 2; int na = 8; f = fopen("E:\\New folder\\ConsoleApplication1\\Debug\\data\\inscatter.raw", "rb"); data = new float[nr*nv*nb*na*4]; fread(data, 1, nr*nv*nb*na*4*sizeof(float), f); fclose(f); glActiveTexture(GL_TEXTURE0 + INSCATTER_UNIT); glGenTextures(1, &inscatterTex); glBindTexture(GL_TEXTURE_3D, inscatterTex);glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MIN_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_MAG_FILTER, GL_LINEAR); glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_S, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_T, GL_CLAMP_TO_EDGE); glTexParameteri(GL_TEXTURE_3D, GL_TEXTURE_WRAP_R, GL_CLAMP_TO_EDGE); glBindBuffer(GL_PIXEL_UNPACK_BUFFER_ARB, 0); glTexImage3D(GL_TEXTURE_3D, 0, GL_RGBA16F_ARB, na*nb, nv, nr, 0, GL_RGBA, GL_FLOAT, data); delete[] data;اريد ان احول هذا الجزء الى لغة C#, لكن ان كان لديكم اقتراح اخر لرسم البحر بغير طريقة ف أرجو ان تفيدوني. 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه
قام بالرد منذ 2 Jul 2013 (معدل) ليس لدي خبرة بالعمل على لغة سي شوربا و لكن فيما يخص أن تقوم بعمل بحر , فأنت أول لن تساتخدم الإكساء فقط فمثل هكذا أشياء يجب يكون صاحبها مطلع على كثير من الأشياء.درست أنا مرة شيفرة برمجية للبحر و كانت عبارة عن شيفرة طويلة جدا و معمولة بلغة التظليل و كان هناك الكثير من لغة التجميع. فلأكون صريحا معك, فإنه من المستحيل أن تفعل ذلك , إنشاء سطح بحر تفاعلي.أما إن كان سطح البحر عبار عن إكساء فقط و إضافة دالة التموج , فهذا ليس تفاعلي , سطح البحر يخضع كثير من القوانين الفيزيائية كتلة الماء و عمق البحر و الحاوي للبحر( الشبكية الحاوية للبحر ) و إتجاهات الريح و الكثير من الأشياءهذه وثيقة قد تفي بالغرض هذا لأفضل برمجيات تفاعيلة هنا أيضاو هذه صفحة ويب جي إلأتمنى لك التوفيق. تم تعديل 2 Jul 2013 بواسطه 3ds max2010 0 شارك هذا الرد رابط المشاركة شارك الرد من خلال المواقع ادناه