Du bist nicht eingeloggt! Möglicherweise kannst du deswegen nicht alles sehen.
  (Noch kein mods.de-Account? / Passwort vergessen?)
Zur Übersichtsseite
Hallo anonymer User.
Bitte logge dich ein
oder registriere dich!
 Moderiert von: Irdorath, statixx, Teh Wizard of Aiz


 Thema: Das pOT erstellt Spiele 4 ( code code durrrr )
« erste « vorherige 1 ... 13 14 15 16 [17] 18 19 20 21 ... 33 nächste » letzte »
erste ungelesene Seite | letzter Beitrag 
Murica

Arctic


peinlich/erstaunt Breites Grinsen
21.10.2017 19:14:22  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Gibts ne Möglichkeit in C# einen type cast direkt zu accessen ohne das ganze vorher in einem member oder lokalen variable zu speichern? Ich hab das Gefühl, dass ich mir das sparen können müsste. Oder erfordert das ein type cast?

Ich hab in meiner AI eine world state list die allerlei content halten kann. Ist im grunde ein dictionary mit ner byte id als key und einem generischen object als value. Wenn ich einen lookup mache check ich erst billig die id um zu wissen welchen content ich im value erwarten kann. Den muss ich allerdings immer erst casten, weil ich ja nur den type "object" zurückbekomme.
Wenn ich daran jetzt was ändern will muss ich erst ne variable erstellen mit dem entsprechenen typ, damit ich dessen member accessen kann.

 
Code:
if (WorldState.TryGetData(id, typeof(List<Stuff>), ref m_grabData))
{
List<Stuff> list = (List<Stuff>)m_grabData.content;
list.Add(Stuff);
}


Ich weiß leider nicht wie memory heavy diese temporäre intialisierung ist und würds mir gern sparen wenns geht.

Ob er cast failed oder nicht macht die TryGetData method schon und returned false, wenn da irgendwas wildes drin steht.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von freakadelle am 26.10.2017 9:28]
26.10.2017 9:26:56  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
 
Code:
((List<Stuff>)m_grabData.content).Add(Stuff);


Sollte aber gar keinen Unterschied machen.
26.10.2017 9:33:35  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Oh nice, die Syntax benutze ich andauernd bei Vektoren Breites Grinsen Hätte man drauf kommen können
Meinst du also dass das intern sowieso immer in nem neuen Speicherblock landet?
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von freakadelle am 26.10.2017 9:39]
26.10.2017 9:36:44  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Traxer

Mod GSG9
das sollte überhaupt nichts kosten, weil das ne referenz auf das object ist, was du in WorldState hast.
daher das ref keyword.


das was da am teuersten ist, ist das typeof.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Traxer am 26.10.2017 9:58]
26.10.2017 9:57:24  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Das ref hab ich eingebaut damit TryGetData keinen return type initialisieren muss, was definitiv speicher gekostet hätte.

 
Code:
List<Stuff> list = (List<Stuff>)m_grabData.content;


Hier dachte ich bisher wird auch ein neues (leeres) list object erstellt. Wenn dem nicht so ist, dann bin ich wunschlos glücklich
[Dieser Beitrag wurde 2 mal editiert; zum letzten Mal von freakadelle am 26.10.2017 10:03]
26.10.2017 10:03:07  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Traxer

Mod GSG9
das hängt ein wenig davon ab, was du da für ne VM drunter hast und was für ne compiler version du nutzt.

das ist einfach nur nen cast auf das interface vom typ List<Stuff>. du kannst, wenn dir das zu kurios erscheint auch "einfach" auf IList<Stuff> casten, dann kann da kein temporäres objekt erzeugt bzw. initialisiert werden, weil du dann einfach nur das interface nimmst.

so ein interface kannst du dir einfach als schablone vorstellen, bei dem die löcher (methoden) auf das darunterliegende (den speicher) passen müssen.

das ref ist an der stelle das entscheidende, du holst dir damit schon ne referenz auf den speicher und über den legst du mit dem cast einfach "nur" die schablone des (I)List<> interface.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von Traxer am 26.10.2017 10:12]
26.10.2017 10:10:16  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Alles klar, danke für die Erklärung
Ergibt jetzt auch Sinn. Tatsächlich habe ich das an anderer Stelle direkt in eine uninitialisierte(!) variable gecastet, was ja deutlich macht, dass es nicht so teuer sein kann, wie ich angenommen habe. War mir nur nicht bewusst in dem Moment.

Was genau ist an dem typeof so teuer?

 
Code:
if (Table.TryGetValue(id, out value))
{
    try {
        if (value.GetType().Equals(type)) {
            return true;
        }
    }
    catch (System.InvalidCastException exc) {
        Debug.LogException(exc);
    }
}


Ich will ja nur validieren, dass es die gleiche signatur(?) hat. Hab ich mir nicht teuer vorgestellt.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von freakadelle am 26.10.2017 10:28]
26.10.2017 10:28:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Traxer

Mod GSG9
das nutzt das reflection system und das kann teuer sein/werden, hängt aber von diversen faktoren ab, ob das bei dir in dem fall relevant ist/wird.

das reflection system kann/darf bei bestimmten sachen keine shortcuts oder gecachten daten verwenden, was im blödesten fall bedeutet, dass es diverse eigenschaften auf recht umständliche art und weise vergleichen muss. das kann dann teuer werden.

das ist recht ähnlich zu der sache, zig tausende strings auf gleichheit zu prüfen. das kostet auch ne menge zeit. in dem fall ists sinniger nen hash der strings zu vergleichen. das macht die VM teilweise intern, hängt aber leider auch davon ab, wie man die vergleichsethoden nutzt.
26.10.2017 10:38:32  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Ich kenne leider keinen anderen weg den type zu vergleichen, ausser den namen als string zu vergleichen. Aber du wirst in meinem code keine string compares finden D: Vorher hash ich das selbst.
Bleibt erstmal so, bis das system im profiler ausschlägt. Danke nochmal für die infos
26.10.2017 10:46:40  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
SwissBushIndian

AUP SwissBushIndian 07.11.2011
Ich hatte im Kopf dazu hier mal einen Post dazu verfasst zu haben, (oder im PIMP?), finde das aber irgendwie gerade nicht. Das "it depends" von Traxer fasst die ganze Reflectionthematik aber ziemlich gut zusammen.
26.10.2017 18:42:01  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Murica

Arctic
 
Zitat von freakadelle

Aber du wirst in meinem code keine string compares finden D:



Vor 2 Wochen hat eine Praktikantin bei uns eine aufn Finger bekommen (eher mit einem Lächeln) - genau deshalb. Breites Grinsen
Nagut, ihr Code hat zusätzlich auch alles doppelt gemacht und sie hat std(*) genutzt. (*Geht garnicht bei Crossplattform stuff - wurde mir gesagt.)
std::string zu FString zu FText zu what ever. Musste grinsen. fröhlich


@Freakadelle @Black & andere FFM Leute hier:
Bierchen zwischen Weihnachten & Silvester? Hab da Urlaub.
Ansonsten auch gern davor, müsste allerdings ein Samstag sein, da ich Freitags länger arbeite.
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von Murica am 29.10.2017 19:36]
29.10.2017 19:33:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
He-Bro

AUP He-Bro 02.08.2016
Ich frage dich ständig du dumme Bitch. Wann kannst du denn?!
30.10.2017 12:06:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Black1900

AUP Black1900 25.04.2024
 
Zitat von Murica

 
Zitat von freakadelle

Aber du wirst in meinem code keine string compares finden D:



Vor 2 Wochen hat eine Praktikantin bei uns eine aufn Finger bekommen (eher mit einem Lächeln) - genau deshalb. Breites Grinsen
Nagut, ihr Code hat zusätzlich auch alles doppelt gemacht und sie hat std(*) genutzt. (*Geht garnicht bei Crossplattform stuff - wurde mir gesagt.)
std::string zu FString zu FText zu what ever. Musste grinsen. fröhlich


@Freakadelle @Black & andere FFM Leute hier:
Bierchen zwischen Weihnachten & Silvester? Hab da Urlaub.
Ansonsten auch gern davor, müsste allerdings ein Samstag sein, da ich Freitags länger arbeite.


Jup. Bin zwischen den Jahren nicht da. Davor gerne.
30.10.2017 12:24:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Murica

Arctic
 
Zitat von He-Bro

Ich frage dich ständig du dumme Bitch. Wann kannst du denn?!



Samstags.





:^)
30.10.2017 18:22:23  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
FooFur

Arctic
 
Zitat von Murica

std(*) genutzt. (*Geht garnicht bei Crossplattform stuff - wurde mir gesagt.)



Das wage ich anzuzweifeln Breites Grinsen
31.10.2017 18:18:33  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Murica

Arctic
 
Zitat von FooFur

 
Zitat von Murica

std(*) genutzt. (*Geht garnicht bei Crossplattform stuff - wurde mir gesagt.)



Das wage ich anzuzweifeln Breites Grinsen



Wegen? Kam von unserem Engine Programmierer der für die Crossplattform (Linux, Mac, PS4, Xbox) Portierungen zuständig ist, seine Erklärung (die ich leider nicht wiedergeben kann. Breites Grinsen) kam mir schon schlüssig vor.
Irgendwie dass es zwar funktioniert, aber letztendlich jede Plattform da im Endeffekt ihr eigenes Süppchen kocht - glaube ich.

Kann ich weder bestätigen noch bestreiten, hab bisher immer nur für Windows alleine programmiert. peinlich/erstaunt

(E/ Wobei seine Kritik hauptsächlich natürlich den String Operationen galt. Hab das ganze auch nur halb mitbekommen, evtl erzähle ich gerade auch nur Schmarrn. Eventuell meinte er auch nur std::string ansich - keine Ahnung.)
[Dieser Beitrag wurde 4 mal editiert; zum letzten Mal von Murica am 31.10.2017 18:25]
31.10.2017 18:21:57  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
FooFur

Arctic
Naja weil std::string im endeffekt nur ein char buffer ist und nicht viel aussagt (kein encoding/locale etc.). Wie die platform damit umgeht ist unterschiedlich. Linux z.B. ist utf8 windows utf16 (+ascii versionen) das ist aber nur die codierung, nicht das was sie aussagen (also die code points). Wenn du beide platformen unterstützt macht es sinn intern nur eine representation zu haben, aber konvertieren musst du immer. Was z.B. unreal intern benutzt weiß ich nicht, aber generell zu sagen std string geht für cross plattform nicht ist schwachsinn.

was stimmt ist das std::string keine unterstützung für utf-X hat, also nur die rohen daten enthällt. aber abgesehen von ICU hat das eigentlich niemand.
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von FooFur am 31.10.2017 18:37]
31.10.2017 18:37:34  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Murica

Arctic
So in der Art dachte ich mir das eigentlich auch, hab mich dann wohl "verhört". fröhlich

Am Mittwoch waren chinesische Streamer mit 505Games in unserem Büro und haben irgendwie den ganzen Tag unser anderes neues Spiel gestreamt.
Sah witzig aus. Plötzlich steht da ne Gruppe Chinesen mit Kameras um uns herum. Breites Grinsen
04.11.2017 13:56:24  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Traxer

Mod GSG9
 
Zitat von FooFur

Naja weil std::string im endeffekt nur ein char buffer ist und nicht viel aussagt (kein encoding/locale etc.). Wie die platform damit umgeht ist unterschiedlich. Linux z.B. ist utf8 windows utf16 (+ascii versionen) das ist aber nur die codierung, nicht das was sie aussagen (also die code points). Wenn du beide platformen unterstützt macht es sinn intern nur eine representation zu haben, aber konvertieren musst du immer. Was z.B. unreal intern benutzt weiß ich nicht, aber generell zu sagen std string geht für cross plattform nicht ist schwachsinn.

was stimmt ist das std::string keine unterstützung für utf-X hat, also nur die rohen daten enthällt. aber abgesehen von ICU hat das eigentlich niemand.


die string klasse ist in der stl das kleinste problem, weil niemand strings in der runtime für irgendwas aus dem real time part nutzt.
das wesentlich grössere problem ist der rest der einfach abgrundtief schlecht dafür geeignet ist.

unreal verwendet in der runtime aka engine komplett eigene libraries und container. da ist kein fitzel stl drin.
04.11.2017 17:50:09  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
FooFur

Arctic
 
Zitat von Traxer

 
Zitat von FooFur

Naja weil std::string im endeffekt nur ein char buffer ist und nicht viel aussagt (kein encoding/locale etc.). Wie die platform damit umgeht ist unterschiedlich. Linux z.B. ist utf8 windows utf16 (+ascii versionen) das ist aber nur die codierung, nicht das was sie aussagen (also die code points). Wenn du beide platformen unterstützt macht es sinn intern nur eine representation zu haben, aber konvertieren musst du immer. Was z.B. unreal intern benutzt weiß ich nicht, aber generell zu sagen std string geht für cross plattform nicht ist schwachsinn.

was stimmt ist das std::string keine unterstützung für utf-X hat, also nur die rohen daten enthällt. aber abgesehen von ICU hat das eigentlich niemand.


die string klasse ist in der stl das kleinste problem, weil niemand strings in der runtime für irgendwas aus dem real time part nutzt.
das wesentlich grössere problem ist der rest der einfach abgrundtief schlecht dafür geeignet ist.

unreal verwendet in der runtime aka engine komplett eigene libraries und container. da ist kein fitzel stl drin.



Zum beispiel? ich verwende gerne die standard container wie vector, array, unordered/map & co, optional, varian, usw... das eignet sich doch alles super. Oder wo siehst du da probleme?

Klar hat die stl auch probleme, vorallem das alter. Iteratoren sind verbose, genau wie iostreams (welche noch ganz andere probleme haben, oft auch implementations bedingt...) aber im großen und ganzen find ich kann man damit ziemlich gut arbeiten. Vielleicht bin ich auch schon dem stockholm syndrom erlegen Breites Grinsen
05.11.2017 13:43:25  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Hier hat nicht zufällig jemand ne Kinect 360, die er nichtmehr braucht peinlich/erstaunt Hab zwar ne Kinect v2, aber leider unterstützen die meisten tools nur die alte Kinect
10.11.2017 11:52:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Vielen Dank an Madmax, der mir seine Sensoren geliehen hat

Hab heute erste Tests gemacht und ich bin begeistert. Habs mir wesentlich schlechter vorgestellt.



Das Licht-Setup ist noch ziemlicher Mist. Muss mir mal ein paar Lampen holen, die gleichmäßiges, weiches licht machen. Led-Strahler aus Kamerarichtung geht, aber da muss noch was drin sein.

First-Person Qualität ist das mit Sicherheit nicht, aber ich werd als Test mal einen kompletten character aus einzelteilen scannen und schaun wie wertvoll das ganze dann ist.

Die Models kommen direkt aus Skanect. Da werden natürlich noch lowpolies gebaut und die textures etwas verbessert. Mal gucken was da noch geht
14.11.2017 21:50:05  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Slutti

AUP Slutti 26.02.2010
Fräsh!

Alte Kinects sind gefragt peinlich/erstaunt? Mist ich habe meine verschenkt /o\
14.11.2017 21:51:48  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
Ich muss noch mehr tests machen, weil zu viele Variablen reinspielen, aber der Asus Xtion Pro Live scheint wesentlich besser zu sein. Wie man auf dem Bild sieht gehn feinere "Details" damit, die capture framerate war besser und das USB Kabel ist leichter zu handhaben, weil keine extra Stromversorgung wie bei der Kinect
[Dieser Beitrag wurde 1 mal editiert; zum letzten Mal von freakadelle am 14.11.2017 21:57]
14.11.2017 21:56:12  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011


More tests!

Diesmal mit einer anderen, fixen Lampe, deshalb ists auch sehr schattig. Der Plan ist natürlich rundherum gleichmäßiges Licht zu haben.
Welches Leuchtmittel würde sich am besten dafür eignen? Der Rucksack oben ist mit nem LED Baustrahler beleuichtet, die Gasmaske mit irgendeiner Leuchtstoffröhre.

Mit was komme ich am nähesten an Farbneutral? Beide gegenstände sind natürlich schwarz ... weder blau noch grün ... Am besten zusätzlich noch irgendwas was den Sensor nicht stört
[Dieser Beitrag wurde 3 mal editiert; zum letzten Mal von freakadelle am 14.11.2017 23:03]
14.11.2017 23:00:28  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
derinderinderinderin

Russe BF
Gibt günstige Studio-Leuchten mit SoftBox aus China. Solltest du auf Amazon finden.

Die machen recht gleichmäßiges Licht für wenig Geld.

Zum Scan-Thema. Hast du Photogrammetrie schon mal ausprobiert? Damit habe ich super Ergebnisse bekommen. (Besser als mit Kinect und Realsense)
Das berechnen der Meshes dauert aber leider sehr lange. Also eigentlich nur praktikabel, wenn du nen zweiten Rechner für hast, oder Geld für CloudServices ausgeben willst.
15.11.2017 12:53:23  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
[WHE]MadMax

Phoenix
Sag ja die Xtion ist besser, hat auch bei einfachen Room Captures bessere Resultate geliefert
Der Sensor der da drin ist ist ja auch unter nem anderen Namen in "professionellem" Capture-Equipment enthalten.
Gibt halt Grenzen für die Dinger, aber für ein "Spielzeug" können die erschreckend viel wenn die notwendige Rechenpower dran hängt.
15.11.2017 13:05:20  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
freakadelle

AUP freakadelle 05.02.2011
 
Zitat von derinderinderinderin

Gibt günstige Studio-Leuchten mit SoftBox aus China. Solltest du auf Amazon finden.

Die machen recht gleichmäßiges Licht für wenig Geld.

Zum Scan-Thema. Hast du Photogrammetrie schon mal ausprobiert? Damit habe ich super Ergebnisse bekommen. (Besser als mit Kinect und Realsense)
Das berechnen der Meshes dauert aber leider sehr lange. Also eigentlich nur praktikabel, wenn du nen zweiten Rechner für hast, oder Geld für CloudServices ausgeben willst.



Selbst ausprobiert nicht. Ich wollte iegentlich nur einen schnellen Test mit der KInect V2 machen, weil die eh rumlag. Jetzt artet es gerade ein bisschen aus. Das tolle ist, dass ich kein hochauflösenden meshes oder textures brauche. Die Qualität müsste ausreichend sein, hab aber noch kein Asset gebaked und in-engine getestet.
Photogrammetrie werd ich mir mit nem Kollegen der das schon gemacht hat auch nochmal anschaun.
Das Ding ist, dass der Aufwand halt wie du sagst nochmal höher ist. Ich muss erst rausfinden wo sich Qualität und Anspruch treffen.

Kannst du ein bisschen über euer Setup erzählen, wieviele Kameras, wie teuer das ganze war etc? Du hattest ja mal ein Bild gepostet, wenn ich mich richtig erinnere
15.11.2017 14:30:34  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
Slutti

AUP Slutti 26.02.2010
Was kostet das Ding und wo bekommt man es? Habe auch lust damit rumzuspielen peinlich/erstaunt
15.11.2017 14:38:31  Zum letzten Beitrag
[ zitieren ] [ pm ] [ diesen post melden ]
 Thema: Das pOT erstellt Spiele 4 ( code code durrrr )
« erste « vorherige 1 ... 13 14 15 16 [17] 18 19 20 21 ... 33 nächste » letzte »

mods.de - Forum » Public Offtopic » 

Hop to:  

Thread-Tags:
| tech | impressum