Jump to content

WOTM luna August a început. Detalii aici

Recrutăm Designeri Audio și Video. Detalii aici

Cdorsu

Member
  • Content Count

    228
  • Joined

  • Last visited

Community Reputation

51 Impressive

6 Followers

About Cdorsu

  • Rank
    I'm addicted

Profile Information

  • Gender
    Male
  • Hobbies
    Pissing everyone off

Previous Fields

  • Real name
    Stefan

Recent Profile Visitors

1175 profile views
  1. C++ - eficient, usor de folosit, bun pentru orice. E unul dintre acele limbaje care pot fi comparate foarte usor cu un "topor" care taie busteni, dar si picioare fara sa faca diferenta. In liceu eram obligat sa-l folsosesc dar cu timpul a ajuns sa fie alegerea mea numarul 1 cand vine de un proiect mai mare. Dupa ce am lucrat la cateva proiecte cu limbajul asta, mi-am dat seama ca asta e limbajul ideal pentru mine. Python - usor de scris, usor de citit, usor de folosit. Daca trebuie sa fac ceva de mai mult de 5 ori, fii sigur c-o sa scriu un scripy in Python care sa faca asta pentru mine. PS: Parea a fi un topic foarte interesant si am simtit nevoia sa ma bag si eu in discutie
  2. Cdorsu

    Stai ca nu inteleg. Ce este o creatie? Mie mi se pare ca acest GM a fost facut de @pawnDaddy care, chiar daca nu e foarte complex momentan, este o creatie. Totusi da, ai dreptate, daca era intradevar facut de el l-ar fi tinut doar pentru el. Sa se joace el si bunica-sa pe server... Ai auzit vreodata de open-source? Nu toata lumea creeaza software pentru bani. PS: Nu sunt atat de interesant de aceasta creatie, dar mi-e greu sa inteleg de ce te-ai bagat unde nu e treaba ta.
  3. Cdorsu

    Nu pot sa spun decat ca mi se pare o idee geniala. Totusi ai si un build pentru preview sau ceva semanator ca m-ai facut curios
  4. Cdorsu

    Antialiasing e pe 3?
  5. Cdorsu

    Consider ca pot inchide topicul.
  6. Cdorsu

    Uite ce scrie aici. A random number ranging from 0 to max-1. Tu te-ai ocupat de cazurile 1, 2 si 3. Lasand un caz lipsa (0) si ocupandu-te de un caz gol (3). Super basic tutorial. Ma mira ca am avut rabdare sa ma uit la tot.
  7. Procesarea de imagini este un proces foarte costisitor, deoarece trebuie procesat fiecare pixel din imagine. Acest lucru este inaceptabil in ziua de azi, cand asteptam ca totul sa fie facut in timp real. M-am gandit ca o serie de tutoriale de procesare de imagini s-ar putea sa prinda bine comunitatii. O sa incep cu ceva foarte simplu si s-ar putea sa continui cu chestii din ce in ce mai avansate (blur, bloom, dithering, poate chiar sa facem propria aplicatie asemanatoare pentru procesare de imagini - slabe sanse sa fac tutoriale despre asa ceva, pentru ca ar interveni mult mai multe lucruri decat procesare de imagini). In aceasta serie voi folosi prorpiul framework(care initial a fost gandit pentru a fi engine pentru un posibil joc) si HLSL pentru 'GPU Work', voi puteti folosi propriul framework, CUDA, OpenCL sau orice doriti voi, eu voi incerca sa explic doar principiile generale. Grayscale V-ati gandit vreodata cum se face un simplu GrayScale? Nu este foarte complicat. Trebuie doar sa adunam toate culorile si sa le impartim la numarul lor ( (R + G + B) / 3 ). Aceasta ar fi una dintre cele mai simple metode, existand insa si metode mai complicate. Texture2D ObjTexture : register( t0 ); // Textura din care vom citi RWTexture2D<float4> ObjResult : register( u0 ); // Textura in care vom scrie (RW = Read Write) SamplerState ObjWrapSampler : register( s0 ); // Obiectul care ne va ajuta sa luam 'mostre' din textura [numthreads(32, 32, 1)] // Cate threaduri va avea un grup (X = 32, Y = 32, Z = 1), X * Y * Z = 1024; Este recomandat ca acest numar sa fie divizibil cu 64 pe placile video AMD si divizibil cu 32 pe placile video nVidia (64 va merge si pentru nVidia si pentru AMD) void main( uint3 DTid : SV_DispatchThreadID ) // DTid = Coordonatele (x,y,z) ale threadului // Ca sa fie mai usor de inteles DTid.x = [0,width], DTid.y = [0,height] si DTId.z = 0 // Aceste valori au de-aface cu numarul de grupuri alocate de CPU { float width, height; ObjTexture.GetDimensions( width, height ); float2 uv = float2( float( DTid.x ) / width, float( DTid.y ) / height ); // Convertim coordonatele [0,width], respectiv [0,height] in coordonate [0,1] float4 color = ObjTexture.SampleLevel( ObjWrapSampler, uv, 0 ); // O sa 'mostre' din cea mai detaliata textura (MipMapLevel = 0) float finalColor = ( color.r + color.g + color.b ) / 3.0f; // calculul efectiv al culorii ObjResult[ DTid.xy ] = float4( finalColor, finalColor, finalColor, 1.0f ); // scriera pe textura finala } Rezultatul final ar trebui sa arate cam asa: In cazul in care aveti probleme cu intelegerea coordonatelor UV, asta si asta ar trebui sa va ajute. Toate tutorialele din aceasta serie vor fi postate aici. Acesta fiind locul din care puteti incarca framerwork-ul si rula exemplele folosind framework-ul facut de mine. Daca intampinati probleme clonand repository-ul In aceasta serie ma voi ocupa in special de partea de procesare de imagini, n-o sa intru in detaliile framework-ului. Singurul lucru pe care trebuie sa-l stiti despre framework este faptul ca face ce trebuie sa faca.
  8. Cdorsu

    Cosider ca pot inchide topicul.
  9. Consider ca pot inchide topicul.
  10. Am o solutie, dar iar nu sunt sigur daca merge. public class Clasa { private Form mForm; private int mNumber; public Clasa(int Number) { mNumber = Number; mForm = new Form(); mForm.Show(); } } private void reopenButton_Click(Object sender, EventArgs e) { Clasa newObject = new Clasa(PrimulNumar); this.Close(); } Eu am facut pentru un singur intreg, dar cred ca-ti dai seama care e ideea.
  11. N-am lucrat cu C#, dar nu cred ca poate fi chiar atat de greu. 1. Nu prea inteleg ce vrei sa spui cu "asemenea unui joc", dar cred ca asta e ceea ce ai vrut: private void reopenButton_Click(Object sender, EventArgs e) { // Create a new instance of the Form2 class Form2 secondForm = new Form2(); // Show the second form secondForm.Show(); this.Close(); } Daca vrei ca in acelasi form sa fie facuta intreaga schimbare e putin mai complicat. Trebuie sa stergi tot din form si dupa sa afisezi ce ai nevoie. (Sau cel putin asa as face eu) 2. Cred ca ai pus un cursor mult prea mare. De obicei un cursor 16x16 sau 8x8 e suficient de mare. Daca esti sigur ca nu ai un cusor foarte mare, poti folosi asta. // Exemplul de pe MSDN public Form1() { this.ClientSize = new System.Drawing.Size(292, 266); this.Text = "Cursor Example"; // The following generates a cursor from an embedded resource. // To add a custom cursor, create or use an existing 16x16 bitmap // 1. Add a new cursor file to your project: // File->Add New Item->Local Project Items->Cursor File // 2. Select 16x16 image type: // Image->Current Icon Image Types->16x16 // --- To make the custom cursor an embedded resource --- // In Visual Studio: // 1. Select the cursor file in the Solution Explorer // 2. Choose View->Properties. // 3. In the properties window switch "Build Action" to "Embedded" // On the command line: // Add the following flag: // /res:CursorFileName.Cur,Namespace.CursorFileName.Cur // // Where "Namespace" is the namespace in which you want to use the cursor // and "CursorFileName.Cur" is the cursor filename. // The following line uses the namespace from the passed-in type // and looks for CustomCursor.MyCursor.Cur in the assemblies manifest. // NOTE: The cursor name is acase sensitive. this.Cursor = new Cursor(GetType(), "MyCursor.Cur"); }
  12. Cdorsu

    Daca nu te-a intrebat nimeni nimic, de ce ai raspuns? Nu inteleg de ce v-ati bagat aici daca nu aveti nicio legatura cu subiectul... Nu aici ceri moduri...
  13. Cdorsu

    Very foarte simplu. Consider ca pot inchide topicul. Daca aveti intrebari sau nelamuriri, PM lui @GF Andrei26, mie sau altui programator.
  14. Cdorsu

    Au trecut mai mult de 3 zile de cand topicul a fost deschis.
  15. Cdorsu

    Au trecut mai mult de 3 zile de cand acest topic a fost deschis.
×

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.